trap
コマンドは、シェルスクリプト内で特定のシグナルやイベントを捕捉し、それに対して指定したコマンドを実行するために使用されます。これにより、スクリプトが終了する前にクリーンアップ処理を行ったり、特定の条件下での動作を制御したりすることができます。
基本的な構文は以下の通りです。
trap [commands] [signals]
EXIT
: スクリプトが終了する際に実行されるコマンドを指定します。SIGINT
: Ctrl+C で送信される割り込みシグナルを捕捉します。SIGTERM
: プロセス終了のためのシグナルを捕捉します。DEBUG
: 各コマンドの実行前に指定したコマンドを実行します。スクリプトが終了する際に特定のコマンドを実行する例です。
trap 'echo "Cleaning up..."; rm -f temp_file' EXIT
ユーザーが Ctrl+C を押したときにメッセージを表示する例です。
trap 'echo "Interrupted! Exiting..."' SIGINT
SIGTERM シグナルを捕捉して特定の処理を行う例です。
trap 'echo "Received SIGTERM, shutting down..."' SIGTERM
各コマンドの実行前にデバッグ情報を表示する例です。
trap 'echo "Executing command: $BASH_COMMAND"' DEBUG
trap
を使用することで、スクリプトの信頼性を向上させることができます。特に、リソースの解放やログの記録に役立ちます。trap 'commands' SIGINT SIGTERM
のように指定できます。trap
を設定することで、予期しない終了時にも適切な処理を行うことができます。