
Я знаю, что в командной строке я могу использовать &
для запуска команды в фоновом режиме. Но мне интересно, могу ли я сделать это в скрипте.
У меня есть такой скрипт:
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
Затем ваш скрипт запустит оба скрипта параллельно и дождется завершения обоих скриптов, прежде чем продолжить работу.