在 Linux/BSD 中检测后台任务是否完成的方法

在 Linux/BSD 中检测后台任务是否完成的方法

我有一个脚本,它可以执行几项操作,其中一项操作取决于远程目录的本地挂载是否可用。脚本中的第一个命令通过使用 调用另一个命令来确保远程磁盘在本地挂载&。接下来的几项操作不需要远程磁盘,因此需要使用&

但最近,似乎安装有点慢,并且脚本中的最后一项由于远程文件不可用而失败。

暂停直到远程文件可用的好方法是什么?

我以为fg会将任务带回前台,并在任务完成后转到下一行。但它说“此 shell 中没有作业控制”

我认为它可以在任何 Linux 或 BSD 上运行,但如果有关系,这是 MacOS 上的 zsh(BSD 但经过 POSIX 认证)。如果需要,请准备好 bash 和 csh。

我可以循环检查已知远程文件的可用性,但也许有更好的方法。

答案1

   wait

wait 命令将等待后台进程完成后再继续处理脚本。只需在需要访问挂载之前将其添加到脚本中即可。

相关内容