シェルI / Oの動作についていくつかの質問があります。
echo apple | echo banana
ここでの出力は次のとおりです。
banana
しかし、このコマンドでは:
echo apple | { echo banana; tail; }
出力は次のとおりです
banana
apple
バナナがリンゴの前に出てきたのはなぜですか? Appleが最初のコマンドのように見えないのはなぜですか?
echo apple | { echo banana; rev; }
上記のコマンドの出力は次のようになります。
banana
elppa
リンゴはなぜ反転され、バナナは反転されないのですか?echo banana; rev;
同時に実行されるからでしょうか?
echo apple >&2 | { echo banana; rev; }
上記のコマンドの出力:
banana
apple
これは前のコマンドと比較して理解できます。なぜなら、私たちはAppleにエラー出力に移動し、rev
標準出力のみを許可するように指示しているからです。
echo apple >&2 | { echo banana; rev; } | tac
出力:
apple
banana
なぜ行の順序を変更したいのか分かりませんtac
。エラー出力も考慮されますか?
{ echo apple >&2; echo banana; } | rev | tac
出力:
apple
ananab
ここでリンゴはエラー出力なので理解していないようですが、rev
バナナは理解していますが、なぜtac
これが起こるのでしょうか?