我的使用方式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 中