在 Mac 上等待下一个作业完成

在 Mac 上等待下一个作业完成

我想提交一堆作业在后台运行,并在提交一定数量的作业时暂停,等待其中一个作业完成,以避免系统过载。在 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参数。

还有其他方法可以做到这一点吗?与示例中不同,作业很慢,但运行时间可能有所不同,因此最先启动的作业可能不是最先完成的作业。如果没有更好的方法,我可以等待最老的作业,但我宁愿等待第一个作业完成。

相关内容