在Shell脚本中,如果你想要等待一个或多个后台进程退出,可以使用`wait`命令。`wait`命令允许你等待特定的进程ID(PID)或作业ID(job ID)指定的进程结束,并返回它们的退出状态。
基本用法
等待所有后台进程退出
```bash
wait
```
这将等待所有后台进程完成,并返回最后一个后台进程的退出状态。
等待特定进程退出
```bash
wait ``` 其中` ```bash wait %job_id ``` 其中`%job_id`是你想要等待的作业ID。 ```bash wait -n 5 ``` 这将等待任意5个后台进程完成。 示例 ```bash !/bin/bash 启动两个后台进程 sleep 5 & sleep 10 & 获取最后一个后台进程的PID last_pid=$! 等待该进程退出 wait $last_pid 打印退出状态 echo "进程 $last_pid 已退出,退出状态为 $? " ``` 在这个示例中,我们首先启动了两个后台进程`sleep 5`和`sleep 10`。然后,我们使用`$!`获取最后一个后台进程的PID,并使用`wait`命令等待该进程退出。最后,我们打印出进程的退出状态。 注意事项 `wait`命令不会等待调用函数中的子任务,它只等待当前Shell中启动的后台子任务。 如果在函数中使用`wait`,则只等待函数中启动的后台子任务。 `wait -f`选项可以用于等待进程终止,而不是仅仅等待进程完成。等待特定作业退出
等待指定数量的进程退出