如何知道后台作业是否在shell脚本中完成?
n=0
while [ $n le 10 ]
do
dosomething &
n= `expr $n + 1`
done
我们如何知道所有dosomething过程是否已完成?
完成后我想打印echo "done"
答案 0 :(得分:3)
您可以使用wait
,如下所示:
n=0
while [ $n le 10 ]
do
dosomething &
done
wait
# all dosomething are finished here
如果你需要等待其中的一小部分,你可以使用wait $pid
,等待特定的pid,你可以通过执行$!
获得,这意味着给我一个pid最后一个命令。
编辑:
我已经看到有关于此事的两个问题,请看一下:
其中第二个似乎只是你问题的副本,我投票决定关闭它。
答案 1 :(得分:0)
您可以使用以下内容:
for i in {1..10}; do
command &
done; wait
使用for
循环和一系列数字会略微缩短。