微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

linux – 有没有办法在posix shell或bash中扇出流?

参见英文答案 > How can I send the stdout of one process to multiple processes using (preferably unnamed) pipes in Unix (or Windows)?                                    5个
我想要一些像以下一样的东西:

cat a > b
prog1 < b
prog2 < b

无需创建临时b文件.

如果我只有一个程序,我可以使用管道:

cat a | prog1

我想知道shell是否具有支持以下内容的语法:

cat a (|prog1) (|prog2)

或者有一个方便的实用程序,可以帮助?就像是:

cat a | fanout prog1 prog2

解决方法

您可以使用 tee process substitution fork数据流并将其发送到多个进程.

cat a | tee >(prog1) | prog2

tee将文件名作为参数. >(prog1)被tee可以写入的文件名替换为/ dev / fd / 63.

要写入两个以上的程序,请添加更多进程替换:

cat a | tee >(prog1) >(prog2) >(prog3) | prog4

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐