Bash опция выхода для отмены текущего (и всех последующих) скриптов - PullRequest
1 голос
/ 28 мая 2020

Когда я пишу свои bash сценарии, я пытаюсь организовать их логически, и в некоторых случаях у меня есть сценарий (главный), который вызывает других (подчиненных). В мастере, если что-то выходит из строя, я просто использую exit с соответствующим сообщением об ошибке, и все останавливается. Однако в сценариях подчиненного устройства сбой с использованием exit остановит работу этого подчиненного устройства, управление будет возвращено мастеру, и мастер просто перейдет к следующей части своего выполнения.

Есть ли вариант (или, может быть, другая команда полностью), которая остановит подчиненное устройство, а также мастер? Я задавался вопросом, возможно, когда мастер запускается изначально, я каким-то образом захватываю PID, под которым он работает, а затем во всех последующих тестах, если мне нужно полное завершение, я использую что-то вроде kill PID# (что, я думаю, я мог бы использовать в мастер, а также подчиненные).

Думая об этом с другой стороны, можно было бы использовать «выход 1» из ведомых устройств и внутри ведущего, протестировать $? после вызова каждого ведомого сценария и, если это не 0, остановить?

Будет ли любой из этих подходов правильным?

1 Ответ

0 голосов
/ 28 мая 2020

Когда подчиненный сценарий возвращается, результат сохраняется в $ ?. Просто проверьте, что возвращается, и если это код ошибки, просто выйдите из основного сценария.

Пожалуйста, дайте мне знать, чем я могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...