我想将进程proc1的stdout重定向到两个进程proc2和proc3:
- proc2 -> stdout
- /
- proc1
- \
- proc3 -> stdout
我试过了
- proc1 | (proc2 & proc3)
但它似乎没有工作,即
- echo 123 | (tr 1 a & tr 1 b)
写
- b23
到stdout而不是
- a23
- b23
在unix(或在mac上),使用
tee
command:
- $ echo 123 | tee >(tr 1 a) | tr 1 b
- b23
- a23
通常你会使用tee重定向输出到多个文件,但使用>(…)可以
重定向到另一个进程。所以,一般来说,
- $ proc1 | tee >(proc2) ... >(procN-1) | procN
会做你想要的。
在windows下,我不认为内置shell有一个等效。微软的Windows PowerShell有一个tee命令。