web-dev-qa-db-ja.com

パイプと終了ダッシュの構文はどういう意味ですか?

免責事項。私は長年のWindowsユーザーであり、Linuxパラダイムについて頭を悩ませ始めています。それに興奮している間、私は私の処方が無知のために適切に選択されないかもしれないことを理解しています。

私は 回答 を受け取りました。その内容には次の行が含まれており、解釈に役立つ必要があります(グーグルのしばらくしてかなり推測しましたが、作りたいと思います)より信頼できる)。

curl -sL https://blabla | Sudo -E bash -

最初にURLblablaへのWeb呼び出しを作成し、次に(ここではパイプマジックが表示されます)admin昇格された特権でコマンドを実行して新しいターミナルウィンドウインスタンスを開くことを理解しています。

ただし、コマンドをダイジェストしようとすると、次のシーケンスと同等であることがわかります。

curl --silent --location https://blabla
Sudo -E bash -

質問1:それは正しく理解されていますか?

さらに、2行目のスイッチが何であるかを調べて、次のようにステートメントを使用しました。

man bash | sed -n '/-E/,+1p'

ただし、「-E」の短縮形(それは-emptyまたはそれは-または多分-err)で、解釈にこだわる。また、私は単独のダッシュ文字が何をするのか理解できず、上記のステートメントを使用してマニュアルでそれを調べる方法がわかりません。

質問2:スイッチの詳細な構文を調べるにはどうすればよいですか?

質問3:スイッチなしのダッシュ文字の意味は何ですか?

7

パイプコマンド(|)は、左側のコマンドの出力を取得し、右側のコマンドへの入力として渡すことを意味します。だから、あなたは何を理解するのがほぼ正しい

curl -sL https://blabla | Sudo -E bash -

します。不足しているのは、最初のコマンドの出力をキャプチャし、それを2番目のコマンドに渡すことです。上記の内容は、次のようにする必要があります。

curl --silent --location https://blabla >/tmp/output
Sudo -E bash - </tmp/output

2番目のコマンドの最後にあるダッシュ(-)は、bashに標準入力を読み取って処理するよう指示しているだけです。そう、

Sudo -E bash - </tmp/output

に等しい

Sudo -E bash </tmp/output

「-E」オプションは、bashではなく、実際にはSudoに関連付けられています。コマンドの実行:

man Sudo

-Eが環境を保存することを示します。

これがあなたのためにいくつかのことを明確にするのに役立つことを願っています。

Linuxの学習を頑張ってください! :)

9
Lewis M