我正在为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
}
等等。
我想一个接一个地执行所有测试。现在在第一次命令后流动中断。
答案 0 :(得分:1)
你可以写:
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
请参阅手册页以了解退出和退货,了解何时使用哪个。