次のスクリプトがあります。
#!/bin/bash
echo "We are $$"
trap "echo HUP" SIGHUP
cat # wait indefinitely
SIGHUP
(使用)を送信するとkill -HUP pid
何も起こりません。
スクリプトを少し変更すると、次のようになります。
#!/bin/bash
echo "We are $$"
trap "kill -- -$BASHPID" EXIT # add this
trap "echo HUP" SIGHUP
cat # wait indefinitely
...これにより、echo HUP
終了時にスクリプトが正しく機能します(Ctrl + Cを押したとき)。
roger@roger-pc:~ $ ./hupper.sh
We are 6233
^CHUP
どうなりますか?SIGHUP
このスクリプトにシグナルを送信するにはどうすればよいですか(必ずしもそうではありません)。