生出力抑制

生出力抑制

スクリプトでパイプを使用すると、シェルが出力をどのようにまたはどのように抑制できますか?コードがあるとしましょう。

cat file | wc -l

行数だけが印刷されます。シェルはファイルの内容をどこに保存しますか?たとえば、検索と同じ

find . -type f -exec grep -o 'hello' {} \; | wc -l

シェルはどうしたの?

ベストアンサー1

これはそれを非常によく説明します。ここそしてここ

したがって、あなたの例では次のようになります。

cat file | wc -l

結果の出力は、パイプを介してストリームに接続されたストリームcatに渡されます。stdoutstdinwc

実際の実装では、各パイプは特定のサイズのバッファに関連付けられます。このバッファはstdout左プロセスのデータで埋められ、stdin右プロセスで使用されます。どちらのプロセスも並列に実行され、右側のプロセスがすべてのデータを十分に高速に消費できず、バッファがいっぱいになると左側のプロセスをブロックするメカニズムがあります。

詳細については、次を参照してください。ここ

おすすめ記事