私たちが知っているように、次のコマンドの出力はファイルにless --help | grep -i examine
リダイレクトされます。少ないファイル数を確認してください。BODMAS rule
、Linuxは数学のような普遍的な操作順序を使用しますか?
less --help | grep -i examine > examine-files-in-less
ベストアンサー1
パイプラインに関連するすべてのコマンド(問題のコマンドなど)は(ほぼ)同時に開始されます。
これは、パイプラインのコマンドがたとえば次のようになることを意味します。
find . ...some other arguments... | sort | uniq -c | sort -nr
すべて並列に実行されます。
ただし、1つのコマンドの出力は次のコマンドの入力であり、コマンドは入力が渡されて出力が消費されるのを待つため、データはパイプラインでコマンドを同期します。
たとえば、上記のパイプラインでは最後のパイプラインが実行されますが、sort
最初のパイプラインがすべての出力を消費するまで多くの操作は実行されません(ソート操作ではfind
sort
みんな利用可能なデータを読みました)。
したがって、データは左から右にソートする必要があります。処理配管に仕上げました。
listなどの他の複合コマンドで
ls -l; cat somefile
これは次のとおりです。
ls -l
cat somefile
左から右の順序が厳密に適用されます。完了するまで開始されませんcat
。ls
複合コマンドでは、次のようになります。
test -f filename || echo 'no such file'
また、終了ステータスが 0 に返されると、echo
実行されない厳密な左から右の順序もあります。test
たとえば、Bashのブールテスト&&と||関連問題「そして」論理演算子とセミコロンの優先順位」。