使用 tee 时等待上一个命令完成

使用 tee 时等待上一个命令完成

我的使用方式tee如下:

some commands | tee -a >(command1 >> file) >(command2 >> file) >(command3 >> file)

我怎样才能延迟执行命令2直到命令1结束,并且对命令3和命令2也这样做?我尝试过wait这样使用,但没有用:

some commands | tee -a >(command1 >> file) >(wait command2 >> file) >(wait command3 >> file)

答案1

看起来缺少一些逻辑并且存在语法错误。

tee -a将把输出传递到 STDOUT 并同时附加,无需使用>

为什么有这么多的输出重定向?也许你应该利用&&;

不确定您正在运行什么命令,但下面的命令至少可以给您一个想法。

some commands | tee -a file; command1 >> file; command2 >> file; command3 >> file 

some commands | tee -a file将显示 STDOUT 并写入文件,无论退出代码如何,因为接下来;command1 >> file执行命令 2,然后是命令 3 等等。

some commands | tee -a file; command1 | tee -a file; command2 | tee -a file; command3 | tee -a file 

这里每个命令集除以都;将按从左到右的顺序执行,并且每个命令输出都将显示在 STDOUT 中

相关内容