0

我启用了一个陷阱调试

function my_trap ()
{
    # some code in here
}
trap 'my_trap' DEBUG


然后我需要禁用它一段时间,所以我做了

trap - DEBUG


现在
我怎样才能重新启用同一个陷阱?
..无需重写:

trap 'my_trap' DEBUG

我不想重新编写它,因为如果我更改了陷阱函数名称,我只需要更改一点即可。

4

1 回答 1

1

我只找到了以下方法:

traps=$( trap )
declare regex="'([^']+)' DEBUG"
[[ ${traps} =~ ${regex} ]]
trap "${BASH_REMATCH[1]}" DEBUG

还有更优雅的吗?

于 2013-02-03T19:13:45.487 回答