「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
トラップエコー「GAGA」はlog.txtに移動しますか?なぜそのような行動なのですか?非常に直感的ではありませんか?
ありがとう!
waa
の標準出力をlog.txt
にリダイレクトし、スクリプトの実行中にtrap
をトリガーしましたwaa
。 echo
は、そのコンテキストで実行されます。
エコーをconsoleに移動させたい場合は、それを標準エラーにリダイレクトしてみてください。
trap "echo 'GAGA' >&2 " TERM
(スクリプトの実行中に標準エラーをリダイレクトしていない限り、それは役立つはずです)。