sudoへのパイプ-E bash-


10

私はでダウンロードしたファイルを、配管の目的が何であるか疑問に思ったcurlsudo -E bash -次のシェルでは:

curl -sL https://deb.nodesource.com/setup_5.x | sudo -E bash -

回答:


10

これは、ファイルを保存して実行する必要なしにスクリプトを実行する簡単な方法です。ファイルを保存して実行すると、次のようないくつかの問題が発生する可能性があります。

  • ユーザーがファイル名を正しく入力しなかった
  • ユーザーが正しいシェルを使用しなかった(多分のsh foo.sh代わりに実行されたbash foo.sh
  • ユーザーがファイルにbashを設定する代わりにファイルを実行しようとし(./foo.sh)、実行権限を設定するのを忘れた
  • ユーザーが使用するのを忘れた sudo

実行する単一のコマンドラインを提供することにより、開発者はluserエラーが原因で問題が発生する可能性のある箇所の数を減らすことができます。

個人的に、私はパイピングカールをバッシュすることを嫌っています。安全ではありません。


7

このコマンドはファイルをダウンロードし、ルート権限で実行しようとします。


3
ありがとうございますが、-Eオプションと-コマンドの最後の目的は何ですか?
Mr.Y 2017年

5
@Youssef -Eは環境変数(プロキシ設定の変数など)を保持し-、標準入力、つまりパイプからコマンドを読み取るようにbashに指示します。
muru
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.