É possível executar dois comandos ao mesmo tempo em um script de shell?

6

Eu sei que na linha de comando eu posso usar & para executar um comando em segundo plano. Mas eu estou querendo saber se eu posso fazer isso em um script.

Eu tenho um script como este:

date_stamp=$(date +"%Y-%m-%d" --date='yesterday')
shopt -s extglob

cd /my/working/directory/

sh ./stay/get_it_ios.sh
sh ./stay/get_it_mix.sh

cd stay
zip  ../stay_$date_stamp.zip  ./*201*

rm ./stay/!(*py|*sh)

E eu quero executar sh ./stay/get_it_ios.sh e sh ./stay/get_it_mix.sh juntos para obter dados mais precisos. É possível fazer isso no escopo de um script de shell?

    
por Zen 17.10.2014 / 06:40

1 resposta

11

Sim, é. Se você quiser fazer duas coisas ao mesmo tempo e esperar que elas sejam concluídas, você pode fazer algo como:

sh ./stay/get_it_ios.sh &  PIDIOS=$!
sh ./stay/get_it_mix.sh &  PIDMIX=$!
wait $PIDIOS
wait $PIDMIX

Seu script executará os dois scripts simultaneamente e aguardará a conclusão dos dois scripts antes de continuar.

    
por 17.10.2014 / 06:46