foo.sh
2つのプログラムがあり、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
幸運の推測からセミコロンを削除してください...