私は、その実行を助けるために一時ファイルに書き出すスクリプトを持っています。私のスクリプトの終わりに、私はrm filename
と呼んで、私が作成した一時ファイルをクリーンアップします。問題は、スクリプトがエラーのために終了するか、中断された場合です。このような場合、rm
ステートメントには決して到達せず、ファイルは決してクリーンアップされません。成功した出口であるかどうかにかかわらず、exitで実行するコマンドを指定できる方法はありますか?終了時にコマンドを実行する方法はありますか(スクリプトの終了方法にかかわらず)?
5
A
答えて
0
割り込みの場合は、onintr
を使用して、ファイルを削除して終了するハンドラを指定できます。
2
はい。あなたが書くことができます。
trap 'rm filename' EXIT
を(。§4.1 "Bourne Shell Builtins" of the Bash Reference Manualにtrap
の説明を参照してください)
を自然に誰かが突然だけでもマシンを抜いた場合、またはコマンドは、—などを実行されることはありません極端な状況がありますスクリプト—を実行しているBashインスタンスにSIGKILL
を送信しますが、これは取得できる程度の信頼性があります。
2
はい、あなたはそうのようなtrap
を使用することができます。
trap "rm -f filename" EXIT
スクリプトは次のようになります。中断のために
#/bin/bash
trap "rm -f filename" EXIT # remove file when script exits
touch filename # create file
some-invalid-command # trigger an error
0
:SIGHUPなどのトラップ信号にスクリプトを設定しますSIGTERM。これはSIGKILL(捕まえられない)を除いてすべてを手伝ってくれます。 Googleの「bashスクリプトトラップ信号」nonsuccessful終了の場合
:構造あなたはrm filenameとの関数を呼び出す(あるいは単に文を置く)ことをあなたは
関連する問題
- 1. 終了せずにbashスクリプトを実行する方法
- 2. アプリケーションはドックアイコンから終了せず、代わりにqtを終了します
- 3. セッションを終了せずにセレンドライバを終了する方法はありますか? (Python)
- 4. レールコンソールを終了せずにループを終了する方法
- 5. 終了時のWP7実行方法
- 6. bashスクリプト終了時にsshトンネルの子プロセスを終了する方法
- 7. Eclipse pydevから実行終了を取得する方法は?
- 8. モンゴーズタイマーの終了時にスクリプトを実行
- 9. Popen終了時に信号を受信する方法はありますか?
- 10. Perl(SSHからリモートホストにコマンドを発行し、終了するのを待たずにセッションを終了します)
- 11. Expectスクリプト - 終了時にコードを実行
- 12. PowerShellの:一時ずに、コマンドからの終了コードに変数
- 13. 実行終了時にスレッドが強制終了されるかどうかを確認する方法はありますか?
- 14. パスフェイルテストケースをカウントして実行終了時にプリントする方法
- 15. キュウリシナリオ実行ごとにブラウザの終了と終了を停止する方法
- 16. Pythonスクリプトを終了する前に何かをする方法
- 17. Tomcatアプリケーションマネージャからの終了方法は?
- 18. 終了時にルビープログラムを強制的に再実行する方法はありますか?
- 19. コンソールアプリケーションの終了を防ぐ方法はありますか?
- 20. iPhone:ビデオが終了する前にMPMoviePlayerControllerを終了する方法はありますか?
- 21. 1時間ごとにログ実行中のジョブを強制終了する方法はありますか?
- 22. スクリプトAをスクリプトB内で実行し、スクリプトBを終了せずにスクリプトBを終了します。
- 23. R gWidgetsスクリプトを終了する方法
- 24. Pythonでエラーを投げずにPythonスクリプトを終了する方法はありますか?
- 25. スクリプトを終了せずにPython cmdサブインタープリタを終了する
- 26. 同時コマンドを実行して終了すると終了する
- 27. 終了した子プロセスの終了状態をシェルに正しく渡す方法はありますか?
- 28. 失敗したコマンドから終了コード0を返す方法
- 29. Javaスクリプトの終了に時間がかかります
- 30. コマンドを実行する方法とアプリケーションの終了を待つことはありませんか?
はこちらをご覧スクリプトを終了する前に、あなたがそのようなコード - 何があるかもしれませんあなたは探しています http://stackoverflow.com/questions/64786/error-handling-in-bash – repoman