Não há diferença semântica entre
for id in 1 2 3
do
bash running_script1.sh $id & (#complete 1 minute/looping)
done
e
bash running_script1.sh 1 &
bash running_script1.sh 2 &
bash running_script1.sh 3 &
wait
echo "running script2 ..."
bash running_script2.sh
Este script de demonstração abaixo executa pouco mais de 3s (você pode usar time
), independentemente de o comando de condição ser true
ou false
:
#!/bin/sh -eu
for i in 1 2 3; do
echo "sleep $i" > $i && chmod +x $i
done
if false; then
for i in 1 2 3; do
bash ./$i &
done
else
bash ./1 &
bash ./2 &
bash ./3 &
fi
wait
Se você ainda estiver com discrepâncias, poste uma ferramenta .