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
piddos processos em segundo plano é coletado emWAITPIDe a lista é alimentada parawait. Você também pode usar números de trabalho. - Quando você executar isso, verá que
second sleeptermina primeiro.