2010-07-02 103 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