加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-14 00:54:16 所属栏目:Linux 来源:网络整理
导读:参见英文答案 How can I send the stdout of one process to multiple processes using (preferably unnamed) pipes in Unix (or Windows)?????????????????????????????????????5个 我想要一些像以下一样的东西: cat a bprog1 bprog2 b 无需创建临时b文件.
参见英文答案 > 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读