Проверка ошибок Bash-скрипта
Я в некотором роде новичок в Bash (с точки зрения сценариев) и хочу знать, какой метод проверки ошибок предпочтителен. Я пишу сценарий сборки, который проходит через несколько команд, и я хочу, чтобы сценарий остановился, если какая-либо из команд завершится с чем-либо отличным от 0. Помимо проверки кода ответа после каждой команды, существует ли "универсальный" способ выхода из скрипта, если что-либо возвращает не 0? Спасибо!
1 ответ
Решение
Использование set -e
в начале вашего сценария.
Он остановит выполнение скрипта после сбоя команды и пересылки кода ошибки.
Из документации bash:
-e Exit immediately if a pipeline (which may consist of a single simple command), a subshell command enclosed in parentheses, or one of the commands executed as part of a command list enclosed by braces (see SHELL GRAMMAR above) exits with a non-zero status. The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or ││ list except the command following the final && or ││, any command in a pipeline but the last, or if the command’s return value is being inverted with !. A trap on ERR, if set, is executed before the shell exits. This option applies to the shell environment and each subshell envi- ronment separately (see COMMAND EXECUTION ENVIRONMENT above), and may cause subshells to exit before executing all the commands in the subshell.