tee + cat:多次使用输出,然后合并结果
例如,如果我调用某个命令,则echo可以在中使用该命令的结果在其他多个命令中tee。例: echo "Hello world!" | tee >(command1) >(command2) >(command3) 使用cat我可以收集几个命令的结果。例: cat <(command1) <(command2) <(command3) 我希望能够同时做这两种事情,这样我就可以tee在其他输出(例如,echo我编写的输出)上调用这些命令,然后使用以下命令将所有结果收集到一个输出中cat。 保持结果为了这一点很重要,这意味着输出的线路command1,command2并且command3不应该纠缠在一起,但订购的命令是(因为它与发生cat)。 可能有比cat和更好的选择,tee但是到目前为止,这些是我所知道的。 我想避免使用临时文件,因为输入和输出的大小可能很大。 我该怎么办? PD:另一个问题是这种情况是循环发生的,这使得处理临时文件更加困难。这是我目前拥有的代码,适用于小型测试用例,但是当以我不理解的方式从auxfile读取和写入时,它会创建无限循环。 somefunction() { if [ $1 -eq 1 ] then echo "Hello world!" else somefunction $(( $1 - 1 )) > auxfile cat <(command1 < auxfile) \ <(command2 < auxfile) \ …