1

我正在为 bash 脚本编写单元测试,并想检查脚本是否因错误退出(我使用exit错误代码)。

有什么方法可以捕获exit(我知道trap),但不要中断命令流(类似于异常捕获)?

我的测试脚本:

do_smth1 && echo OK || echo Fail
do_smth2 && echo OK || echo Fail
do_smth3 && echo OK || echo Fail

我的主要脚本:

do_smth1(){
   ...
   ...
   [ $? -eq 0 ] && success || error_exit
}

等等。

我想一个接一个地执行所有测试。现在第一个命令后流中断。

4

1 回答 1

1

You can write:

success=0
error_code=1
do_smth1(){          
   ...          
   ...          
   [ $? -eq 0 ] && return $success || return $error_code         
}

do_smth1 && echo OK || echo Fail             
do_smth2 && echo OK || echo Fail             
do_smth3 && echo OK || echo Fail   

Refer the man pages for exit and return, to know when to use which.

于 2012-07-21T07:47:18.197 回答