Можно ли запустить две команды одновременно в скрипте оболочки?

Можно ли запустить две команды одновременно в скрипте оболочки?

Я знаю, что в командной строке я могу использовать &для запуска команды в фоновом режиме. Но мне интересно, могу ли я сделать это в скрипте.

У меня есть такой скрипт:

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)

И я хочу запустить sh ./stay/get_it_ios.shи sh ./stay/get_it_mix.shвместе, чтобы получить более точные данные. Возможно ли сделать это в рамках скрипта оболочки?

решение1

Да, это так. Если вы хотите сделать два дела одновременно и дождаться их завершения, вы можете сделать что-то вроде:

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

Затем ваш скрипт запустит оба скрипта параллельно и дождется завершения обоих скриптов, прежде чем продолжить работу.

Связанный контент