2つの並行プログラム(ログファイルの末尾)の出力をbashの1つの出力ストリームに取り込みたいとします。2つの並行プログラムの出力をbashと組み合わせる
私はテストのために、このプログラム例で使用:
function foo { for i in $(seq 1 10); do echo "program $*"; sleep 1; done }
今すぐ次が
(foo bar & foo baz &) | tee /tmp/output
正常に動作しませんが、私はミックスに余分なパイプを追加したら、それはもはや作品:
(foo bar | grep bar & foo baz &) | tee /tmp/output # does't work
出力は順次になります。私はgrepを含む別のプログラムを作ることができましたが、これを回避する方法があるかどうかを知りたいのですが。
誰かがそれがうまくいかない理由を説明できれば、私はとても幸せになるでしょう。
「ティーのため」です。 grepはttyへの書き込みではありません。 grepはパイプに書き込みを行い、teeはttyに書き込みを行います。 –
あなたは絶対に正しいです。貧しい言葉を私の部分に - 私は明確にするために自分の投稿を編集します。 – FatalError