> 进程管理 > wait

wait: 等待后台作业完成

wait 命令用于等待指定的后台作业或进程 (PID) 终止。当您同时运行多个作业,并且需要等待所有作业完成后才能继续执行脚本时,此命令特别有用。

概述

wait 命令正如其名称“等待”所示,在 shell 脚本中用于暂停 shell 的执行,直到后台运行的作业完成。它通常在需要使用 `&` 符号并行运行多个后台作业,并等待所有这些作业完成后才能继续进行下一步操作时使用。使用 `wait` 还可以让脚本检查后台进程的退出代码,这有助于判断作业是否成功。

主要特点

wait 命令的主要特点如下:

  • 等待特定后台作业的终止。
  • 可以指定作业号或进程 ID (PID) 作为参数。
  • 不带参数运行时,它会等待所有后台作业终止。
  • 在 shell 脚本中,它对于同步多个并行作业非常有用。

主要选项

wait 命令是一个简单的命令,它接受作业号或 PID 作为参数,几乎没有其他选项。

1) 执行选项

2) 帮助

生成的命令:

请尝试组合命令。

描述:

`wait` 执行命令。

通过组合这些选项,您可以与 AI 一起虚拟地执行命令。

使用示例

通过 wait 命令的各种使用示例来熟悉其功能。

等待所有后台作业

sleep 5 &
sleep 10 &
jobs
wait
echo '所有作业已完成。'

在后台运行多个 `sleep` 作业后,使用 `wait` 命令等待所有作业完成。

等待特定作业

sleep 10 &
sleep 5 &
jobs
wait %1
echo '作业 1 已完成。'

等待两个作业中的作业 1 完成。使用 `jobs` 命令确认作业编号,然后使用 `wait %1`。

按进程 ID (PID) 等待

sleep 10 &
PID=$!
echo "PID $PID 的作业已开始。"
wait $PID
echo "PID $PID 的作业已完成。"

在脚本中,使用 `$` 将后台进程的 PID 存储到变量中,然后等待该 PID 终止。

安装

wait 是 shell (如 bash, zsh 等) 的内置命令,无需单独安装。

提示与注意事项

总结了使用 wait 命令时需要注意的事项。

提示

  • `wait` 会暂停 shell 的执行,直到后台进程终止。如果进程不终止,shell 将会一直等待。
  • `wait` 命令的退出状态码与所等待进程的退出状态码相同。这允许您在脚本中检查作业是否成功。
  • 要使用作业号 (`%1`),您需要首先使用 `jobs` 命令查看当前 shell 的后台作业。`$!` 是一个特殊变量,包含最近在后台运行的进程的 PID。

相同类别命令