Ist es möglich, in einem Shell-Skript zwei Befehle gleichzeitig auszuführen?

Ist es möglich, in einem Shell-Skript zwei Befehle gleichzeitig auszuführen?

Ich weiß, dass ich über die Befehlszeile &einen Befehl im Hintergrund ausführen kann. Aber ich frage mich, ob ich das auch in einem Skript tun kann.

Ich habe ein Skript wie dieses:

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)

Und ich möchte sh ./stay/get_it_ios.shund sh ./stay/get_it_mix.shzusammen ausführen, um genauere Daten zu erhalten. Ist dies im Rahmen eines Shell-Skripts möglich?

Antwort1

Ja, das ist es. Wenn Sie zwei Dinge gleichzeitig tun und warten möchten, bis beide abgeschlossen sind, können Sie Folgendes tun:

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

Ihr Skript führt dann beide Skripte parallel aus und wartet, bis beide Skripte abgeschlossen sind, bevor es fortfährt.

verwandte Informationen