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

Kyl*_*and 6 linux bash shell signals bash-trap

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

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

Jea*_*bre 5

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

$ function f
> {
> echo trapped
> }
Run Code Online (Sandbox Code Playgroud)

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

$ trap f SIGINT
Run Code Online (Sandbox Code Playgroud)

让我们列出设置陷阱:

$ trap
trap -- 'f' SIGINT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
Run Code Online (Sandbox Code Playgroud)


Dal*_*son 5

是的

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

$ trap            # show all traps for all signals
$ trap -p SIGINT  # only show traps for SIGINT
$ trap -p EXIT    # only show traps for EXIT
Run Code Online (Sandbox Code Playgroud)