Você deseja usar o shell wait
incorporado.
Execute comandos em segundo plano e depois peça ao shell para esperar que todos terminem antes de continuar. Aqui está um exemplo muito básico:
#!/bin/bash
sleep 6 && echo first sleep &
WAITPID="$!"
sleep 3 && echo second sleep &
WAITPID="$WAITPID $!"
echo "waiting"
wait $WAITPID
echo "done waiting"
Notas:
- O
pid
dos processos em segundo plano é coletado emWAITPID
e a lista é alimentada parawait
. Você também pode usar números de trabalho. - Quando você executar isso, verá que
second sleep
termina primeiro.