Проверка ошибок 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.
Другие вопросы по тегам