在一些同时执行的命令之后运行 bash 命令?

Goo*_*bot 13 bash shell-script background-process

我想并行运行一些命令。当所有这些命令完成后,开始下一个。我虽然以下方法会起作用

#!/bin/bash
command1 &
command2 &
command3 &&
command4
Run Code Online (Sandbox Code Playgroud)

但它没有。我需要command4在前三个命令全部完成后运行。

Kus*_*nda 28

#!/bin/bash
command1 &
command2 &
command3 &

wait
command4
Run Code Online (Sandbox Code Playgroud)

wait (不带任何参数)将等到所有后台进程退出。

的完整描述wait了在bash手册:

wait [-n] [n ...]

等待每个指定的子进程并返回其终止状态。每个都n可能是一个进程 ID 或一个作业规范;如果给出了作业规范,则等待该作业管道中的所有进程。 如果n未给出,则等待所有当前活动的子进程,返回状态为零。 如果提供了该 -n选项,则wait等待任何作业终止并返回其退出状态。如果n指定一个不存在的进程或作业,则返回状态为 127。否则,返回状态为最后等待的进程或作业的退出状态。