2011-01-14 13 views

答えて

10

簡潔に言えば、ですが、パイプ内の各コマンドの終了値は$PIPESTATUSで取得できます。あなたはシェルオプションshopt -s pipefail経由での戻り値の動作を変更することができますし、ulimit -p

+0

私はこのような短い答えからどれだけ多くのことを学んだのですか? – Bolo

+2

'$ PIPESTATUS'と' shopt -s pipefail'はバッジズムですが、そうでなければやや賢明です。 'ulimit -p'もバッシュですが、プログラムがパイプに一度に書き込むことができるので、書き込みが別の書き込みと混ざり合うことはありませんが、実際のバッファは通常より大きくなります。スクリプトでこれを必要とすることはほとんどありませんが、そうした場合は 'getconf PIPE_BUF /'を使用してください。 – jilles

4

|はコマンドではないので、引数はありません。しかし、パイプの周りで使用されるコマンドはコマンドを取ることができます。これらのコマンドについては、マンページを参照してください。

0

|経由でコマンドからのコマンドにバッファリングされているどのくらい変更することができ、あなたのシェルによって解釈構文構文むしろ、コマンドではありません。そのため、特定のシェル・ドキュメンテーションがパイプ固有のオプションをサポートしているかどうかを確認する必要があります。

あなたの質問に一層よく答えるには、どのシェルを使用しているのか、何を達成しようとしているのかを教えてください。