如何知道后台作业是否在shell脚本中完成?
n=0 while [ $n le 10 ] do dosomething & n= `expr $n + 1` done
我们怎么能知道所有的dosomething进程完成或没有?
完成后,我想打印echo "done"
你可以使用wait
,就像这样:
n=0 while [ $n le 10 ] do dosomething & done wait # all dosomething are finished here
如果您需要等待其中的几个,您可以使用wait $pid
来等待一个特定的pid,执行$!
,这意味着给我最后一个命令的PID。
编辑:
我看到有两个问题在这个问题上,看看他们:
其中第二个似乎完全是你的问题的副本,我正在投票结束这个。
您可以使用以下内容:
for i in {1..10}; do command & done; wait
使用for
循环和一个数字范围稍微缩短。