【bash】リダイレクトとパイプを理解する(2)
次回:【bash】リダイレクトとパイプを理解する(3)
前回:【bash】リダイレクトとパイプを理解する(1)
前回は標準入出力のリダイレクトについてまとめました。
今回はパイプについてまとめます。
パイプ
パイプは前のコマンドの標準出力を次のコマンドに標準入力として渡します。
パイプを利用するには演算子 " | " を使います。
演算子 " | "
≪書式≫ $ コマンドX | コマンドY ・・・ コマンドXの標準出力をコマンドYに標準入力として渡す。 ≪記述例≫ $ ls -a | grep target ・・・ lsコマンドの実行結果をgrepコマンドに渡す。 grepは実行結果の中から「target」が含まれる行を表示する。
記述例の動作をイメージ図にすると次のようになります。
図中のコマンドXがlsコマンド、コマンドYがgrepコマンドに相当します。
ここでは2つのリダイレクトが行われています。
- コマンドX : FD1番が標準出力から書込みモードで開かれたパイプにリダイレクトされます。
- コマンドY : FD0番が標準入力から読込みモードで開かれたパイプにリダイレクトされます。
これによりコマンドXの標準出力がパイプを通してコマンドYに標準入力として渡されるようになります。
次回は、複数のリダイレクトを組み合わせた場合、
リダイレクトとパイプを組み合わせた場合についてまとめます。