testttt(){
echo after trapp
}
test(){
echo inside testcode
exit 2
}
trap 'testttt' 2
test
当我运行脚本时,我得到输出 - >内部测试代码 但我在期待 - >内部测试代码 在trapp之后 为什么没有陷阱'testttt'2捕获testttt()
答案 0 :(得分:1)
只有当您的脚本收到reference_wrapper<milliseconds>
(信号2)时,您的陷阱才会执行,而不会在状态为2的任何时候退出。
相反,您应该捕获SIGINT
,然后测试处理程序中的退出状态。
EXIT
答案 1 :(得分:0)
添加到@chepner答案,您可以通过以下方式向正在运行的脚本发送中断:
testttt(){
echo after trapp
}
test(){
echo inside testcode
kill -s SIGINT $$
}
trap 'testttt' 2
test
$$
将包含脚本的PID。