私はいくつかのトラップを管理するスクリプトを開発しています。初めに私はこのコードでINTとSIGTSTPを管理し、それは非常にうまく機能:Bashトラップ、キャプチャして同じ関数の引数として渡す
#!/bin/bash
function capture_traps() {
echo -e "\nDoing something on exit"
exit 1
}
trap capture_traps INT
trap capture_traps SIGTSTP
read -p "Script do its stuff here and we use read for the example we pause for time to generate trap event"
exit 0
その後、私はSIGINTとSIGHUPある私が管理する新しいトラップを、追加しようとしました。最初のインスタンスでは、私は(作業している)これをしなかった:
#!/bin/bash
function capture_traps() {
echo -e "\nDoing something on exit"
exit 1
}
trap capture_traps INT
trap capture_traps SIGTSTP
trap capture_traps SIGINT
trap capture_traps SIGHUP
read -p "Script do its stuff here and we use read for the example we pause for time to generate trap event"
exit 0
はその後、私はトラップによって出口で異なるものを行うことを決めたと私はそれぞれに対して異なる機能を作成する必要はありません。私はbashにおいて、for item in [email protected]; do
命名法を使って関数の引数をループすることができるので、試しましたが、トラップの種類を区別しようとしていないようです。私は動作していないこのコードを作った。
#!/bin/bash
function capture_traps() {
for item in [email protected]; do
case ${item} in
INT|SIGTSTP)
echo -e "\nDoing something on exit"
;;
SIGINT|SIGHUP)
echo -e "\nDoing another thing even more awesome"
;;
esac
done
exit 1
}
trap capture_traps INT SIGTSTP SIGINT SIGHUP
read -p "Script do its stuff here and we use read for the example we pause for time to generate trap event"
exit 0
ヘルプがありますか? ...そこにすべてのトラップに一つだけの機能を使用して、私のコードを改善する方法でなければなりませんが、私は方法がわからない