Linux bash script запуск нескольких python

У меня есть 2 скрипта python a.py и b.py и я хочу написать bash script, который будет загружать a.py и не запускать b.py, пока a.py не сделает это. упрощенно

#!/usr/bin/env bash
python a.py
python b.py

но это наивно, проверьте, выполняется ли a.py... как это сделать?

Ответ 1

Это по умолчанию будет выполняться один за другим.


Чтобы проверить, что python a.py успешно завершено как необходимое условие для запуска python b.py, вы можете сделать:

#!/usr/bin/env bash
python a.py && python b.py

И наоборот, попробуйте запустить python a.py и ТОЛЬКО запустить 'python b.py', если python a.py не завершился успешно:

#!/usr/bin/env bash
python a.py || python b.py

Чтобы запустить их одновременно с фоновыми процессами:

#!/usr/bin/env bash
python a.py &
python b.py &

(Ответ на комментарий). Вы можете связать это несколько команд подряд, например:

python a.py && python b.py && python c.py && python d.py 

Ответ 2

prompt_err() {

echo -e "\E[31m[ERROR]\E[m"

}

prompt_ok() {

echo -e "\E[32m[OK]\E[m"

}

status() {

if [ $1 -eq 0 ]; then

prompt_ok

else  prompt_err

exit -1

fi

}

a.py

status

b.py

Вы можете использовать контрольный код выше.

Если "a.py" выполняется только тогда, он обработает "b.py", иначе он выйдет с "Ошибка".