我想捕获CtrL + c和CtrL + \,然后将以下cmd添加到我的脚本中:
trap _trapException SIGINT SIGQUIT
function _trapException(){
echo "The job is canceled!"
exit
}
但是,这可以捕获CtrL + \,但不能捕获CtrL + c,
我删除了SIGQUIT,它仍然不会捕获CtrL + c。
否则,我会同时在脚本中使用tee函数。
最佳答案
您的处理函数和陷阱调用都可以。首次提高SIGINT
或SIGQUIT
时将调用该函数。但是,在信号处理程序中,您也正在调用exit
。这意味着它将终止该过程。
尝试从功能exit
中删除_trapException
调用。
关于linux - sh trap SIGINT失败,但是trap SIGQUIT成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31144375/