如何将标准输出定向到两个管道?

How can I direct standard output into two pipes?

我需要对我的程序的标准输出流做两件不同的事情:比如说,将它导入两个管道,或者将它打印到终端并将它导入一个管道。但是 - none 这些东西正在将其定向到文件中。

如果我想要管道 + 文件,我会使用 tee 命令:myprog | tee out.txt | another_command,如 here 所述。但是,如果两个操作中的 none 正在写入文件怎么办?

您可以在 bash 中使用流程替换来做到这一点。假设您想将 myprog 的输出重定向到两个单独的实体以继续阅读,请将 >(..)tee

一起使用
myprog | tee >(prog1) >(prog2)

有关详细信息,请参阅 Greg's Wiki or the man bash 文档。