我想捕获CtrL + c和CtrL + \,然后将以下cmd添加到我的脚本中:

trap _trapException SIGINT SIGQUIT
function _trapException(){
  echo "The job is canceled!"
  exit
}


但是,这可以捕获CtrL + \,但不能捕获CtrL + c,
我删除了SIGQUIT,它仍然不会捕获CtrL + c。

否则,我会同时在脚本中使用tee函数。

最佳答案

您的处理函数和陷阱调用都可以。首次提高SIGINTSIGQUIT时将调用该函数。但是,在信号处理程序中,您也正在调用exit。这意味着它将终止该过程。

尝试从功能exit中删除​​_trapException调用。

关于linux - sh trap SIGINT失败,但是trap SIGQUIT成功,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31144375/

10-11 14:30