【发布时间】:2012-01-31 13:01:14
【问题描述】:
我想将两个并发程序的输出(日志文件的尾部)捕获到 bash 中的一个输出流中。
我使用这个示例程序进行测试:
function foo { for i in $(seq 1 10); do echo "program $*"; sleep 1; done }
现在以下工作正常
(foo bar & foo baz &) | tee /tmp/output
但是一旦我在混合物中添加了一个额外的管道,它就不再起作用了:
(foo bar | grep bar & foo baz &) | tee /tmp/output # does't work
输出变成连续的。我可以制作一个包含 grep 的单独程序,但我想知道是否有办法解决这个问题。
如果有人能解释为什么它不起作用,我会很高兴。
【问题讨论】: