【发布时间】:2013-04-12 04:06:40
【问题描述】:
当我发现一个奇怪的问题时,我遇到了How can I send the stdout of one process to multiple processes using (preferably unnamed) pipes in Unix (or Windows)? 的答案并正在玩grep。以下工作符合我的预期:
$ while [ 1 ]; do sleep 1 ; echo tick; done | tee >(grep -o ti) >(grep -o ic) >(grep tick) >/dev/null
ic
ti
tick
ic
tick
ti
^C
所有三个grep 命令都应用于循环的输出。
但是,如果我将 tee 的输出通过管道传输到 grep(而不是将其重定向到 /dev/null),则文件上的 greps 将停止工作:
$ while [ 1 ]; do sleep 1 ; echo tick; done | tee >(grep -o ti) >(grep -o ic) | grep tick
tick
tick
^C
为什么会这样?
【问题讨论】:
标签: linux bash io-redirection