实际上,我试图完成的是以下内容,其中 cmd1 需要一段时间才能运行(~1 分钟),而 cmd2 几乎在每次运行时立即返回:
必须编写脚本,因为它必须进入一个相当大的循环,该循环使用许多不同的参数运行 cmd1,然后对其他几个长时间运行的命令再次执行相同的操作。
我怎样才能做到这一点?
aki*_*ira 13
cmd1 &
cmd1_pid=$!
sleep 10
cmd2
sleep 10
cmd2
wait $cmd1_pid
Run Code Online (Sandbox Code Playgroud)
解释:cmd1 &
在shell后台启动一个进程。该$!
变量包含该后台进程的 pid。shell 继续处理其他 cmds。sleep 10
意思是“稍等片刻”。OP 只是想以cmd2
线性顺序触发,所以这部分是微不足道的。在脚本片段的末尾,我们只是等待cmd1
完成(甚至可能更早完成)wait $cmd1_pid
。
归档时间: |
|
查看次数: |
13506 次 |
最近记录: |