Bashトラップ機能内でどの信号が捕捉されるかを確認する方法はありますか?

Bashトラップ機能内でどの信号が捕捉されるかを確認する方法はありますか?

any(catchable)に対して関数を呼び出すことを指定bashするスクリプトがあります。trapsignal

typeset -i sig=1
while (( sig < 65 )); do
    trap myfunc $sig
    let sig=sig+1
done

signalどちらがキャプチャされたかを確認する方法は私のスクリプトにありますか?

答え1

trap "signum=${sig};myfunc" "$sig"

答え2

キャプチャされた信号値を実行したい操作に渡したいとします。次のようにしてみてください。

# 1     SIGHUP
# 2     SIGINT
# 3     SIGQUIT
# 6     SIGABRT
# 9     SIGKILL
# 14    SIGALRM
# 15    SIGTERM

for sig in 1 2 3 6 9 14 15; do
    trap 'echo "caught signal '$sig'..."' $sig
done

関連情報