2010-07-02 105 views
2

我正在为我的项目写一个脚本中的一个脚本来捕获信号SIGINT。如何让终端不打印“^被信号2杀死”在捕获SIGINT时

trap sigint_handler SIGINT 

我有信号处理

sigint_handler() 
{ 
# echo caught signal, now quiting.... 

    exit $? 
} 

所以,现在当脚本得到它得到它并退出一个CTRL + C信号。

而上端子它打印此消息:

$^Killed by signal 2. 
$ 

我知道是由系统产生的该消息。我想这是因为一些中断,我可能并不正确。

所以现在我只是想让这个消息不应该在退出脚本时出现在终端上,因为这个信号。

我的预期行为是,当我按CTRL + C时,它不应该打印任何消息,并且通常会悄悄离开脚本。

任何人都可以告诉我或建议我该怎么做才能忽略此消息。 有没有办法忽略此消息。

谢谢。

Alok.Kr.

回答

0

陷阱声明在哪里?

trap 'echo "signal received, exiting"' 2 

将是一个示例陷阱语句陷阱信号#2 - 这是在SIGIX(ctrl/c)在POSIX系统上。

+0

陷阱sigint_handler SIGINT 这是信号2的SIGINT的陷阱。 – 2010-07-02 13:37:24

+0

你的函数没有做任何我能看到的东西。这是有时被称为“跌落”的意思,它被执行,但没有改变程序状态。 – 2010-07-03 16:41:34