Shell脚本中的“异常处理”

Hal*_*own 4 shell zsh

我知道您可以在shell脚本中使用快捷方式布尔运算符执行某种异常处理,如下所示:

my_first_command && my_second_command && my_third_command
Run Code Online (Sandbox Code Playgroud)

但是随着要链接的命令数量的增加,这很快变得难以理解和难以维护。如果我正在编写脚本(或shell函数),是否有一种好方法可以使脚本或函数在第一个非零返回码上停止执行,而不必大写?

(我使用zsh,因此,如果有答案对zsh我来说只能奏效)。

Gre*_*ill 5

-e选项执行此操作:

   ERR_EXIT (-e, ksh: -e)
          If a command has a non-zero exit status, execute the ZERR  trap,
          if set, and exit.  This is disabled while running initialization
          scripts.
Run Code Online (Sandbox Code Playgroud)

您应该可以将其放在shebang行上,例如:

#!/usr/bin/zsh -e
Run Code Online (Sandbox Code Playgroud)

大多数shell具有此选项,通常称为-e