Bash - запустить один скрипт, когда предыдущий успешно выполнен, иначе запустить другой скрипт?

RHEL6 не использует systemd, следуйте документации RHEL6 по управлению системными службами

1
20.08.2019, 22:16
2 ответа

Предполагая, что ваш main_script.shдовольно стандартный и проходит 0для успешного запуска и 1для неудачного запуска, вы можете проверить статус через $?следующим образом:

./main_script.sh
if [ $? -eq 0 ]; then
   ./report_success.sh
else
   ./report_failure.sh
fi
2
27.01.2020, 23:12

Это так просто:

true && echo ok || echo fail

false && echo ok || echo fail

Типичная команда может возвращать значение null (, поскольку true означает ), или может возвращать не null (, поскольку false означает )в зависимости от того, была ли операция выполнена успешно или не удалось.

./main_script.sh &&./report_success.sh ||./report_failure.sh

Если вам нужно было выполнить несколько команд для случаев ok или fail, используйте фигурные скобки. Нет необходимости в нескольких скриптах:

./main_script.sh && { echo ok ; echo ok2 } || { echo fail ; echo fail2 ; }

1
27.01.2020, 23:12

Теги

Похожие вопросы