假设我有三个程序:生成器,它生成输入到处理器的输入数据和验证器,可以检查处理器输出对于给定输入是否正确(因此它需要两个文件).
@H_404_10@
我没有测试过这个,但尝试:
我目前做的是:
发电机> 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