Se você deseja executar dois scripts de shell em paralelo, use a seguinte sintaxe:
script1 & script2 &
Como exemplo, dê uma olhada no seguinte script de teste (denominado p1
):
i=1
while true;
do
echo "1 $((i++))"
sleep 1
if [ $i -gt 10 ]; then break; fi
done
Contará para 10 e ecoará “1” antes do contador. Após 10 iterações, sai.
Agora, se você criar uma versão p2
, basta modificar o echo
um pouco:
echo "2 $((i++))"
Tente executar os scripts com a sintaxe acima:
$ ./p1 & ./p2 &
1 1
2 1
1 2
2 2
1 3
2 3
1 4
2 4
1 5
2 5
1 6
2 6
1 7
2 7
1 8
2 8
1 9
2 9
1 10
2 10
Como você pode ver, ambos os scripts exibem sua saída e saem após 10 rodadas. Note que a saída é mista, então eles rodam em paralelo.