私はchrootでコマンドを実行しようとしましたが(これはかなり新しい)、次の出力が表示されます。
root@hostname:~ # bash <(wget -q0 https://raw.githubusercontent.com/ubports/unity8-desktop-install-tools/master/install.sh)
bash: /dev/fd/63: No such file or directory root
TL; DR:chrootの外の/root
フォルダーをchrootディレクトリーにコピーします
<(...)
演算子はプロセス置換として知られており、コマンドを実行する方法であり、その出力は匿名パイプに送られます。これが/ dev/fd/63です。アイデアは、外部コマンド(ここではbash
)が別のコマンド出力をファイルであるかのように扱うことを許可することです。通常、フォームは<
を使用して、その擬似ファイルオブジェクトをbash
の入力ストリームにリダイレクトします。
bash < <(wget -q0 https://raw.githubusercontent.com/ubports/unity8-desktop-install-tools/master/install.sh)
通常、これはwget https://stuff.com/blah | bash
と変わりません。どちらの場合も、ダウンロードするスクリプトが大ざっぱなソースからのものではなく、マルウェアでもないことを100%確信していない限り、一般にこのようなコマンドを使用することはお勧めしません。
ただし、chroot
でコマンドの実行について言及しているため、スクリプトはNo such file or directory root
を出力し、bashではスクリプトをbash script.sh
として実行できるため、スクリプトは実行されますが、chrootにはroot
という名前のディレクトリがありません。 Sudo cp -R /root chrootdir
で修正できます。より良い結果を得るには、最初にスクリプトを読んで、必要なものを確認し、それをchrootフォルダーにコピーしてから、フォルダー内でスクリプトをローカルで実行することをお勧めします。 wgetを複数回実行する必要はありません
したがって、スクリプトは機能します。一般的に<Shell>: <command user typed>: error message
形式のシェルスクリプトのエラー。したがって、スクリプトは一時的に/ dev/fd/63として保存され、実行されますが、必要なものが見つかりません。
こちらもご覧ください