📜  启动多个 bash 进程并等待所有进程完成 - Shell-Bash (1)

📅  最后修改于: 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 "所有进程已完成!"
希望这个脚本对你有帮助!