SCRIPT_1="ksh -x script1.sh & bg_pid=$!; ksh -x script2.sh; wait $bg_pid";
SCRIPT_2="ksh -x script3.sh & bg_pid=$!; ksh -x script4.sh; wait $bg_pid";
eval $SCRIPT_1;
sleep 20s;
eval $SCRIPT_2;
Do meu script, estou executando os seguintes comandos:
SCRIPT_1="ksh -x script1.sh & ksh -x script2.sh";
SCRIPT_2="ksh -x script3.sh & ksh -x script4.sh";
eval $SCRIPT_1;
sleep 20s;
eval $SCRIPT_2;
Eu quero apenas executar o $SCRIPT_2
após a conclusão do $SCRIPT_1
. Mas atualmente ambos são executados ao mesmo tempo, independentemente de estarem sendo executados em linhas separadas.
Alguma ideia de como esperar que o outro script termine antes de executar o próximo?
Usando o GNU Parallel você faria algo como:
parallel ksh -x ::: script1.sh script2.sh
parallel ksh -x ::: script3.sh script4.sh