【Linux】シェルやスクリプトを終了させる:exit

Linux

どーも!marusukeです!

シェルセッションやスクリプトを終了させ、終了ステータスを自由に設定できるコマンドexitについて説明します!

exitコマンドでできること

exit [終了ステータス]

exitコマンドは、シェルセッションやシェルスクリプトを終了するために使用されます

シェルスクリプトや対話型のシェルでexitを実行すると、シェルが終了(対話型シェルではログアウト)し、オプションで指定した終了ステータスをシステムに返します

終了ステータスを指定することで、後続の処理やエラーチェックに利用することもできます

主な機能

  1. シェルの終了: 対話型シェル(ターミナルセッション)でexitを使用すると、そのシェルセッションが終了(ログアウト)します
  2. スクリプトの終了: シェルスクリプト内でexitを使用すると、スクリプトの実行が即座に終了します
  3. 終了ステータスの指定: 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無効な引数による終了
130Ctrl+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以上の数値を指定します。終了ステータスを他のプログラムやスクリプトに伝えることで、エラーチェックやフロー制御が可能になります

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました