web-dev-qa-db-ja.com

「|」とは何ですか(垂直バー)文字は、ターミナルコマンドでの意味ですか?

例:ターミナルコマンドで

xdpyinfo | grep解像度
|
xdpyinfo
解決
14

垂直バー|は、一般に「パイプ」と呼ばれます。あるコマンドを別のコマンドにパイプするために使用されます。つまり、最初のコマンドからの出力を2番目のコマンドの入力に送信します。あなたの説明は非常に正確です。

20
Dan

これはpipe(またはpipeline)と呼ばれ、その前のコマンドの出力は、その後ろのコマンドへの入力として作成されることを意味します。

例:

dmesg | tail
bash --version | tac

パイプなしでコマンドを試してみてください。

はい、あなたは正しいです。この場合、コマンドxdpyinfoは情報を表示し、grepに解析されます。 grepは結果をフィルタリングし、resolutionが含まれる行のみを表示します。

pipeの詳細:

8
Rinzwind

文字|はパイプと呼ばれることもあり、1つのコマンドからの出力を接続して他のコマンドに入力するために使用されます。

したがって、xdpyinfo | grep resolutionは最初にコマンドxdpyinfo(Xに関する情報を表示するユーティリティ)を実行し、出力を表示しません。このコマンドの出力はgrep(正規表現パーサー)に入力され、解決を含むエントリが検索されます。

表示されるのは必要な情報だけであり、xdpyinfoコマンドの完全な出力ではありません。

1
Warren Hill

あなたの解釈は正しいです。 |文字は、最初のコマンドの出力を2番目のコマンドの入力ストリームにパイプします。 2つのコマンドは、実際には2つの並行プロセスとして並行して実行されています。これは、Unixの特徴である「パイプとフィルターのパラダイム」(単純なパイプラインによる複雑な機能の構築)の実例です。

詳細については、bashまたはシェルスクリプトに関するチュートリアルを参照することをお勧めします。ウェブにはたくさんあります。 Unix/GNUシェルの優雅さと威力に驚くことでしょう。

1
zwets