检查是否在Bash中设置了陷阱

时间:2016-09-13 18:56:23

标签: linux bash shell signals bash-trap

有没有办法检查Bash中已设置trap的内容(在当前会话或脚本中)?

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

2 个答案:

答案 0 :(得分:5)

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

$ function f
> {
> echo trapped
> }

让我们将陷阱设置为分配给SIGINT的函数

$ trap f SIGINT

让我们列出设置陷阱:

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

答案 1 :(得分:5)

即可。

您可以查看特定信号的所有陷阱或陷阱:

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