シェルスクリプトで、何が起ころうが基本的にスクリプトが終了する直前に実行してほしいコマンドがあるとします。今の具体的な想定としては、 mktemp で作ったディレクトリの削除です。

シェルスクリプトは、通常であれば上から順番にコマンドを実行していき、最後に終了しますが、ぱっと思いつくかぎりでも、以下のケースで (スクリプトの途中で) 終了します。

  • exit コマンドの実行
  • sigint, sigterm などのシグナルの受信

これらの場合でも、適切に終了処理を実行してくれるシェルスクリプトは記述できますか?