2016-09-13 76 views
4

有没有办法检查在Bash中设置了哪些trap(在当前会话或脚本中)?检查是否在Bash中设置了陷阱

理想情况下,我希望能够获得分配给它们的trap的信号列表,但如果这是不可能的,我可以单独检查每个信号。

+0

我很惊讶,我无法找到谷歌搜索和其他搜索StackOverflow的问题,在这个任何信息,所以我不会感到惊讶如果有重复的地方,我只是没有找到。 –

+2

你尝试过输入'trap'吗? –

+0

@ Jean-FrançoisFabre显然不是!那么,现在我觉得很愚蠢。 –

回答

3

你可以看到所有的陷阱,或特定的信号陷阱:

$ trap   # show all traps for all signals 
$ trap -p SIGINT # only show traps for SIGINT 
$ trap -p EXIT # only show traps for EXIT 
5

让我们定义一个函数如下:

$ function f 
> { 
> echo trapped 
> } 

让我们设下的圈套分配给SIGINT该功能

$ trap f SIGINT 

咱们列表设置陷阱:

$ trap 
trap -- 'f' SIGINT 
trap -- '' SIGTSTP 
trap -- '' SIGTTIN 
trap -- '' SIGTTOU