※ ChatGPTを利用し、要約された質問です(原文:シェルスクリプト trap処理の流れにつきまして)
シェルスクリプトのtrap処理について
このQ&Aのポイント
シェルスクリプトのtrap処理について質問があります。
スクリプト中断時にも処理が実行され、不要な書き込みが行われる場合があります。
どのような流れでtrap処理が動作し、途中で処理を中断させる方法について教えてください。
シェルスクリプト作成しておりますが、
trap処理について質問がありますので、ご教授お願い致します。
以下、テストしたいと思っているスクリプトを記載いたします。
#!/bin/sh
trap "echo 'stopped'" 1 2 3 15
echo start > test1.txt
sleep 100
echo end > test1.txt
上記スクリプトを実行し、Ctrl+cもしくは、
kill -15 でスクリプトを削除した場合、
sleep中にスクリプト中断していると思うのですが、
end文字列がtest1.txtに書き込まれてしまいます。
trapが処理される流れというのは、どのような流れなのでしょうか。
また途中で中断しているのであれば、途中で以下処理を
行なわないようにするにはどうすればよろしいでしょうか。
宜しくお願いいたします。
お礼
trap処理について何度も回答いただきましてありがとうございます>< 作成したいと思っているスクリプトは複数処理がありますので、案2ではなく、案1でやりたいと思います。 trapを調べていて、いろいろなサイトでexitを書いていたりなかったりで、あまり深く考えておりませんでしたが、途中で終了させることができるのですね! 大変勉強になりました! ありがとうございます!!