我想从 tcsh 命令行执行以下操作,最好在 1 行中:
build_cmd1 &
build_cmd2 &
build_cmd3 &
wait until all parallel build commands finish
regression_cmd
Run Code Online (Sandbox Code Playgroud)
也就是说,我想分叉出一堆构建命令,阻塞直到它们退出,然后再运行另一个命令。我想从 tcsh 命令行执行此操作。
::检查手册页::
看起来像 csh 和衍生品支持wait,所以考虑类似
% cmd1 &; cmd2 &; cmd3 &; wait; thing_to_do_after
Run Code Online (Sandbox Code Playgroud)
或者因为&&and||运算符短路,你可以使用
% (cmd1 &; cmd2 &; cmd3 &) && thing_to_do_after
Run Code Online (Sandbox Code Playgroud)
但前提是您确定子 shell 的退出状态( true 表示 use &&, false 表示 use ||)。
如果您希望等待不受先前启动的后台任务的影响,请将其放入子 shell ( ()) 中,如下所示:
% (cmd1 &; cmd2 &; cmd3 &; wait) && thing_to_do_after
Run Code Online (Sandbox Code Playgroud)
或者
% (cmd1 &; cmd2 &; cmd3 &; wait; thing_to_do_after)
Run Code Online (Sandbox Code Playgroud)
//请注意,我已经很久没有使用过 tcsh...
| 归档时间: |
|
| 查看次数: |
11039 次 |
| 最近记录: |