どーも!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以上の数値を指定します。終了ステータスを他のプログラムやスクリプトに伝えることで、エラーチェックやフロー制御が可能になります
以上です!
ここまで読んでいただきありがとうございました!


コメント