
「CTRL+C」で終了すると、次のスクリプトが実行されます。
#!/bin/bash
function waa(){
for i in {1..10}
do
echo "start.sh: sleeping $i"
sleep 1s
done
}
trap "echo 'GAGA'" TERM
waa >> log.txt
echo "gaga"をlog.txtにトラップしますか?なぜこれが起こるのですか?非常に直感的ではありませんか?
ありがとうございます!
答え1
標準出力にリダイレクトされ、waa
スクリプトが実行されるとトリガーされますlog.txt
。そのコンテキスト内で実行されます。trap
waa
echo
エコを送りたいなら快適、標準エラーにリダイレクトしてみることができます。たとえば、次のようになります。
trap "echo 'GAGA' >&2 " TERM
(スクリプトを実行するときに標準エラーをリダイレクトしない限り、この場合は役立ちます)。