2012-07-19 103 views
2

我知道,你可以使用shell脚本shortcutting布尔运算做某种异常处理,像这样:“异常处理” shell脚本

my_first_command && my_second_command && my_third_command 

但这很快就变成不可读和不可维护的数您想链接的命令增长。如果我正在编写一个脚本(或者一个shell函数),是否有一种很好的方法可以让脚本或函数的执行停止在第一个非零的返回码上,而不用写在一个大行上?

(我用zsh,所以如果有答案,只有在zsh工作,通过我的罚款。)

回答

3

-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. 

你应该能够在把这个shebang行,如:

#!/usr/bin/zsh -e 

大多数壳有这个选项,它通常被称为-e

+0

这是完美的 - 非常感谢!一旦不接受窗口过期,我会立即接受。 – 2012-07-20 00:11:37