检查 Bash 中是否设置了陷阱
Check if trap is set in Bash
有没有办法检查在 Bash 中设置了哪些 trap
(在当前会话或脚本中)?
理想情况下,我希望能够获得分配了 trap
的信号列表,但如果这不可能,我可以单独检查每个信号。
让我们定义一个函数如下:
$ function f
> {
> echo trapped
> }
让我们将陷阱设置为分配给 SIGINT
的函数
$ trap f SIGINT
让我们列出设置的陷阱:
$ trap
trap -- 'f' SIGINT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
是。
您可以查看所有陷阱,或查看特定信号的陷阱:
$ trap # show all traps for all signals
$ trap -p SIGINT # only show traps for SIGINT
$ trap -p EXIT # only show traps for EXIT
有没有办法检查在 Bash 中设置了哪些 trap
(在当前会话或脚本中)?
理想情况下,我希望能够获得分配了 trap
的信号列表,但如果这不可能,我可以单独检查每个信号。
让我们定义一个函数如下:
$ function f
> {
> echo trapped
> }
让我们将陷阱设置为分配给 SIGINT
的函数$ trap f SIGINT
让我们列出设置的陷阱:
$ trap
trap -- 'f' SIGINT
trap -- '' SIGTSTP
trap -- '' SIGTTIN
trap -- '' SIGTTOU
是。
您可以查看所有陷阱,或查看特定信号的陷阱:
$ trap # show all traps for all signals
$ trap -p SIGINT # only show traps for SIGINT
$ trap -p EXIT # only show traps for EXIT