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
}
等。
我想要一个接一个地执行所有测试。现在在第一个命令之后流动中断。
为什么你不能只检查返回值?你是否用'set -e'运行测试脚本,并且没有正确处理被测脚本的返回值?也许你可以用一个例子来扩展你的问题,你有什么(代码)和你喜欢什么功能。 – 2012-07-17 11:51:51
请参阅编辑 – qutron 2012-07-17 12:00:50
您所展示的内容应该适用。偶然有'set -e'有效吗?如果将'set + e'放在测试脚本的开头附近会发生什么? – 2012-07-17 12:18:57