обработка исключений или ошибок в сценариях оболочки - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть модуль кода, в котором я буду проверять ошибки, используя "$?"в сценариях оболочки.Предположим следующий сценарий:

"sub_script.sh"
--error statements--
echo "abc"

"main_script.sh"
sh sub_script.sh
if [ $? == 0 ];then
 echo "no error"
else
 echo "error"
fi

Теперь, даже если у меня есть операторы ошибок в sub_script.sh, если я запускаю скрипт из main_script.sh, я не могу его обработать, потому что у меня есть echoоператор, который выполняется успешно и возвращает значение 0.

Я только что повторил это здесь, у меня есть много сценариев оболочки, которые запускают куст или искру или какой-то другой код.

Есть ли какие-либо изменения для обработки такого родасценария в сценариях оболочки?

Заранее спасибо!

1 Ответ

0 голосов
/ 24 апреля 2018

Во всех случаях вам нужно возвращать правильный код завершения из ваших сценариев.Если ваш скрипт завершается неудачно, но завершается с 0 (успехом) из-за оператора echo, скрипт содержит ошибки и должен быть исправлен.

Используйте exit 1 (или любое значение 1-255) для выхода с ошибкойили exit 0 для успешного завершения.

...