等待除Bash中的一个进程之外的所有进程

Tho*_*rig 3 parallel-processing bash wait

我有一个Bash脚本,基本上看起来像这样:

#!/bin/bash

command_1 &

command_a &
command_b &
command_c &

wait

echo "done"
Run Code Online (Sandbox Code Playgroud)

我在命令&结尾处使用后台执行一些命令.然后我等待命令完成wait.但我只想等待命令a,b并且c,1.我怎样才能做到这一点?是否有可能完成而不收集命令的PID a,bc在阵列中并等待那些PIDs`?(这是我到目前为止所尝试的,但它有点复杂.)

dev*_*ull 6

您可以在子shell中执行命令a,b,c.

command_1 &

( command_a & command_b & command_c & wait )

echo "done"
Run Code Online (Sandbox Code Playgroud)

如果您不想在子shell中执行a,b,c,则需要跟踪各个PID.