Чтобы проверить код завершения команды в Bash используется следующая логика:Как создать эффективную проверку ошибок в скрипте Bash?
if [ $? -ne 0 ]
then
echo "Error occurred"
return 1
fi
Моя проблема заключается в том, что при добавлении этого после каждой команды делает сценарий очень долго с несколькими копиями одного и того же, и очень трудно поддерживать.
Лучшая вещь здесь будет функцией, которая будет вызываться из всех мест, где необходимо проверить код выхода. Проблема в том, что команда exit
не может быть использована, поскольку она убьет текущий процесс (текущий сеанс Bash будет убит), поэтому может использоваться только команда return
. Но при использовании команды return в вызываемой функции вызывающая функция все равно должна проверять код выхода и вернуться к той же проблеме.
Есть ли что-то вроде MACRO в Bash или любым другим способом проверки ошибок более эффективно?
Как насчет 'set -e'? – Biffen
Он убьет текущий процесс, и это не обязательное поведение. –