我有两个程序foo.sh
,bar.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