どーも!marusukeです!
シェルセッションやスクリプトを終了させ、終了ステータスを自由に設定できるコマンドexit
について説明します!
exitコマンドでできること
exit [終了ステータス]
exit
コマンドは、シェルセッションやシェルスクリプトを終了するために使用されます
シェルスクリプトや対話型のシェルでexit
を実行すると、シェルが終了(対話型シェルではログアウト)し、オプションで指定した終了ステータスをシステムに返します
終了ステータスを指定することで、後続の処理やエラーチェックに利用することもできます
主な機能
- シェルの終了: 対話型シェル(ターミナルセッション)で
exit
を使用すると、そのシェルセッションが終了(ログアウト)します - スクリプトの終了: シェルスクリプト内で
exit
を使用すると、スクリプトの実行が即座に終了します - 終了ステータスの指定:
exit
の引数に終了ステータスを指定することで、実行結果をシステムや他のプログラムに返すことができます。終了ステータスが指定されていない場合、最後に実行したコマンドのステータスが返されます
exitコマンドの使用例
1. 対話型シェルでの使用
ターミナルにexit
と入力すると、そのセッションが終了します
exit
exit
コマンドのみを使用すると、最後に実行したコマンドの終了ステータスがそのまま返されます
2. 終了ステータスを指定して終了
exit
に数値を指定することで、特定の終了ステータスを返すことができます
exit 0
exit 0
は正常終了を意味し、この場合、システムには「正常終了」のステータスが返されます- 通常、
0
は成功、1
以上の値はエラーを示します
3. スクリプト内での使用
スクリプト内でexit
を使用すると、指定した終了ステータスでスクリプトの実行を終了します
#!/bin/bash
echo "Starting script..."
if [ "$1" -eq 0 ]; then
echo "Exiting with status 0 (success)."
exit 0
else
echo "Exiting with status 1 (error)."
exit 1
fi
- 上記スクリプトでは、引数に応じて終了ステータスが
0
または1
で終了します
主な終了ステータス
終了ステータス | 意味 |
---|---|
0 | 正常終了 |
1 | 一般的なエラー |
2 | コマンドライン使用エラー |
126 | コマンドが実行できない |
127 | コマンドが見つからない |
128 | 無効な引数による終了 |
130 | Ctrl+C による終了 |
例: コマンドの終了ステータスを取得して終了
以下の例では、ls
コマンドの終了ステータスを利用してexit
します
#!/bin/bash
ls /some/nonexistent/directory
status=$?
if [ "$status" -ne 0 ]; then
echo "Command failed with status $status. Exiting..."
exit $status
fi
ls
が失敗すると、その終了ステータスが$?
に格納され、exit $status
でそのまま終了ステータスを返します
まとめ
exit
コマンドは、シェルやスクリプトを終了させるコマンドであり、スクリプト実行後の終了ステータスを自由に設定することができます。一般的には、正常な終了には0
、エラー終了には1
以上の数値を指定します。終了ステータスを他のプログラムやスクリプトに伝えることで、エラーチェックやフロー制御が可能になります
以上です!
ここまで読んでいただきありがとうございました!
コメント