我们何时以及为什么需要在 bash 上使用 `wait` 命令?

tes*_*ter 17 bash wait

bash shell 不是已经将命令一一运行,等待执行的命令完成吗?那么我们wait什么时候以及为什么需要这个命令呢?

Arc*_*mar 34

您可以使用wait,如果你已经启动了后台任务,例如,

#!/bin/bash
task1 &
task2 &
task3 &
wait
echo done
Run Code Online (Sandbox Code Playgroud)

在此示例中,脚本启动三个后台任务。这些将在后台并发运行,并wait等待所有三个任务完成。一旦wait返回,脚本将继续处理echo done.


正如评论中所指出的,wait可以给出一个工作号 ( wait %3) 或一个 pid ( wait 1234)。虽然在交互式 bash 中很容易(使用jobps)找到它们,但在批处理模式下可能更困难。