我有两个程序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
答案1
从你的幸运猜测中删除分号......