📅  最后修改于: 2023-12-03 14:50:42.390000             🧑  作者: Mango
启动多个 bash 进程并等待所有进程完成是在 Shell 或 Bash 脚本中常见的任务之一。这个任务通常用于同时执行多个并行任务,并在它们全部完成后继续执行后续的操作。
以下是一个示例的 Shell 脚本,演示了如何启动多个 bash 进程并等待它们全部完成。
#!/bin/bash
# 数组用于存储所有子进程的进程 ID
pids=()
# 启动并后台运行第一个进程
bash -c 'command1' &
pids+=($!)
# 启动并后台运行第二个进程
bash -c 'command2' &
pids+=($!)
# 启动并后台运行更多进程...
# 等待所有子进程完成
for pid in "${pids[@]}"; do
wait "$pid"
done
# 所有子进程已完成,继续执行后续操作
echo "所有进程已完成!"
在上面的脚本中,首先定义一个数组 pids
来存储所有子进程的进程 ID。然后,通过 bash -c
命令启动并后台运行每个进程,并将其进程 ID 添加到 pids
数组中。根据需要,可以按需添加更多进程。
通过使用 wait
命令和一个循环,脚本会等待每个子进程完成。wait
命令会阻塞脚本直到指定的进程完成。循环遍历 pids
数组,每次等待一个子进程完成。
等待所有子进程完成后,脚本将继续执行其后续操作。在上面的示例中,只是简单地打印出一条完成消息,但你可以根据实际需求添加你自己的代码。
为了将上述脚本以 Markdown 格式返回,你可以将它包装在代码块标记中,如下所示:
```bash
#!/bin/bash
# 脚本内容...
echo "所有进程已完成!"
希望这个脚本对你有帮助!