他のプログラムと並列に実行される2つのプログラムのパイプ出力

他のプログラムと並列に実行される2つのプログラムのパイプ出力

foo.sh2つのプログラムがあり、bar.shどちらも無限ループを含み、連続出力を生成し、並列に実行する必要があります。私はこれら2つのプログラムの出力を3番目のプログラムにパイプしたいと思いますconsumer

最初はただfoo.sh走ったので、パイプは簡単に通り過ぎました。

./foo.sh | ./consumer

しかし今、bar.sh出力をconsumer

私はこの答えで提案したことを試しました(回答1回答2)しかし、最初のプログラムが終了した後に開始されるプログラムでのみ動作するようです。同時に実行する必要があります。

foo.shパイプだけがあり、起動しないため機能しませんbar.sh

( ./foo.sh ; ./bar.sh ) | ./consumer

この幸運の推測により、構文エラーが発生しました。

( ./foo.sh & ; ./bar.sh & ) | ./consumer

答え1

幸運の推測からセミコロンを削除してください...

関連情報