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

Bash:如何将一个进程的stdout和stderr传递给两个不同的进程?

发布时间:2020-12-15 21:01:22 所属栏目:安全 来源:网络整理
导读:我有一个进程myProcess1,它产生stdout和stderr输出.我想将两个输出流分为两个不同的下游进程myProcess2和myProcess3,它们将按摩数据,然后将结果转储到两个不同的文件中.是否可以使用单个命令执行此操作?如果没有,那么第二好的将运行两个单独的命令,一个用于
我有一个进程myProcess1,它产生stdout和stderr输出.我想将两个输出流分为两个不同的下游进程myProcess2和myProcess3,它们将按摩数据,然后将结果转储到两个不同的文件中.是否可以使用单个命令执行此操作?如果没有,那么第二好的将运行两个单独的命令,一个用于处理stdout,另一个用于stderr.在这种情况下,第一次运行只是:

myProcess1 | myProcess2 > results-out.txt

处理stderr的类似命令是什么?谢谢

解决方法

没有花哨的游戏,这样的事情应该有效:

{ myProcess1 | myProcess2 > results-out.txt; } 2>&1 | myprocess3 > results-err.txt

有花哨的游戏(不能在/ bin / sh等工作)你可以做这样的事情:

myProcess1 2> >(myprocess3 > results-err.txt) | myProcess2 > results-out.txt

(编辑:李大同)

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

    推荐文章
      热点阅读