本文へ移動

exit(コマンド)— シェル・スクリプトを終了するコマンド

exitは、シェル、スクリプト、またはプロセスを終了し、呼び出し元の環境へ終了ステータスを返すターミナルおよびスクリプト用コマンドです。

exitコマンドは、多くのコマンドラインシェルおよびプログラミング言語のインタプリタで提供される一般的な制御命令である。主な役割は、現在のプロセスを終了し、スクリプトまたはセッションを終え、親プロセスへ整数の終了ステータスコードを返すことである。実行を直接停止するため、exitは成功または失敗を通知する用途と、環境を既知の状態に保つ用途の両方で使われる。

画像ギャラリー

1 画像

動作と特徴

exitを呼び出すと、現在のシェルまたはインタプリタのインスタンスが終了する。一般的な動作には、次のようなものがある。

  • 任意の数値引数を受け取り、それを終了ステータスとする。慣例として、0は成功を、0以外の値はエラーまたは特定の状態を示す。
  • 引数を指定しない場合、多くのシェルでは最後に実行したコマンドのステータスが終了ステータスとして返される。
  • プロセスが実際に終了する前に、登録済みのクリーンアップハンドラやトラップルーチン(たとえばPOSIXシェルのシグナルトラップ)を実行する。
  • 対話的な利用では、ログインシェルを終了するとユーザーはログアウトするか、端末エミュレータが閉じる。スクリプト内では、スクリプトを停止して呼び出し元へ制御を戻す。

一般的な用途と例

exitは、ユーザーセッションの終了、エラー発生時のスクリプト停止、ユーティリティからの特定コードの返却など、さまざまな文脈で使用される。以下はプレーンテキストで記した例である。

  • シェル: exit 0 # 成功を示す
  • シェル: exit 2 # エラー状態を示す
  • スクリプトの慣用表現: test_condition || exit 1 # 失敗時に停止する

多くのインタプリタ型言語には同等の機能がある。簡潔な言語リファレンスについては一般ドキュメントを、言語固有のページについてはPerlおよびPHPを参照できる。これらには、実行を終了して整数のステータスをオペレーティングシステムへ返す組み込みのexit関数が用意されている。

歴史と変種

exitまたは終了命令という概念は、子プロセスが親プロセスへ完了を示す必要があった初期のコマンドインタプリタとオペレーティングシステムのプロセスモデルにさかのぼる。システムやシェルごとに細かな実装上の違いがある。ログインシェル向けに別個のlogoutコマンドを備える環境、コンソール全体を閉じずにスクリプトから戻るための変種を用いるバッチシステム、実行を停止する同義語(言語によってはdieなど)を含むプログラミング言語がある。

区別と実用上の注意

exitは、システムシグナルやジョブ制御コマンドで行う他のプロセスの強制終了や、プログラム内の関数から戻ることと混同してはならない。適切に使用すれば、exitは実行を終了し、プロセスを呼び出した対象へ簡潔なステータスを伝える、単純で予測可能な仕組みである。

関連項目

著者

AlegsaOnline.com exit(コマンド)— シェル・スクリプトを終了するコマンド

URL: https://ja.alegsaonline.com/art/32936

共有