![在 Mac 上等待下一个作业完成](https://linux22.com/image/1626452/%E5%9C%A8%20Mac%20%E4%B8%8A%E7%AD%89%E5%BE%85%E4%B8%8B%E4%B8%80%E4%B8%AA%E4%BD%9C%E4%B8%9A%E5%AE%8C%E6%88%90.png)
我想提交一堆作业在后台运行,并在提交一定数量的作业时暂停,等待其中一个作业完成,以避免系统过载。在 Linux 上,我会这样做
x=0
while true
do
sleep 100 &
let x=x+1
if [[ $x -gt 10 ]]
then
# Wait for the next job to finish
wait -n
let x=x-1
fi
done
这在 Mac 上会失败,因为wait
可以获取 pid,但不能获取-n
参数。
还有其他方法可以做到这一点吗?与示例中不同,作业很慢,但运行时间可能有所不同,因此最先启动的作业可能不是最先完成的作业。如果没有更好的方法,我可以等待最老的作业,但我宁愿等待第一个作业完成。