<强>可能重复:结果   在bash外壳脚本识别接收到的信号名称

当使用类似trap func_trap INT TERM EXIT用:

func_trap () {
    ...some commands...
}

有一种方法在功能块来检测的 其中 陷阱叫什么?

是这样的:

func_trap () {
    if signal = INT; then
        # do this
    else
        # do that
    fi
}

或者我需要编写,做一些不同的东西每个陷阱类型都有一个单独的功能? 是否有保持最新接收的信号一个bash变量?

提前感谢!

有帮助吗?

解决方案

任何参数或变量没有文件提示持有该被困信号,所以你必须为你写要表现不同每个陷阱的函数/ Trap语句。

其他提示

您可以实现自己的告警功能,可自动将信号传递给函数:

trap_with_arg() {
    func="$1" ; shift
    for sig ; do
        trap "$func $sig" "$sig"
    done
}

$ trap_with_arg func_trap INT TERM EXIT

的第一个参数func_trap将成为信号的名称。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top