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

shell – 复制stdout,将其传递给两个不同的命令,从最终程序的std

发布时间:2020-12-16 01:15:15 所属栏目:安全 来源:网络整理
导读:假设我有三个程序:生成器,它生成输入到处理器的输入数据和验证器,可以检查处理器输出对于给定输入是否正确(因此它需要两个文件). 我目前做的是: 发电机 in.txt处理器 in.txt out.txt cat in.txt out.txt |验证 是否可以在不使用显式文件的情况下实现相同的
假设我有三个程序:生成器,它生成输入到处理器的输入数据和验证器,可以检查处理器输出对于给定输入是否正确(因此它需要两个文件).

我目前做的是:

发电机> in.txt&&处理器< in.txt> out.txt&& cat in.txt out.txt |验证

是否可以在不使用显式文件的情况下实现相同的结果?我已经阅读过关于使用tee和进程替换重复输入的内容,但是我没有找到将两个流收集到单个流中以便最后一步的方法.

我没有测试过这个,但尝试:
{ generator | tee /dev/stderr | processor ; } 2>&1  | verifier

这会将生成器输出的副本重定向到stderr.然后在发电机的stdout上运行处理器.然后将两者结合起来管道到验证者.

但是,这不能保证订单,来自发电机和发电机的线路.处理器将到达验证者.

或者,您可以尝试如下所示的流程替换:

( generator | tee >(processor) ) | verifier

(编辑:李大同)

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

    推荐文章
      热点阅读