与另一个程序并行运行的两个程序的管道输出

与另一个程序并行运行的两个程序的管道输出

我有两个程序foo.shbar.sh它们都包含无限循环,产生连续输出并且应该并行运行。我想将这两个程序的输出通过管道传输到第三个程序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

从你的幸运猜测中删除分号......

相关内容