# Exit 組込みコマンド

Exit 組込みコマンドコマンドはシェルの実行を終了します。

## 構文

- `exit [-f] [終了ステータス]`

## 説明

Exit コマンドは、このコマンドを実行したシェル (または​サブシェル) を終了します。

停止している​ジョブのある​対話モードのシェルを終了しようとすると、シェルは警告を表示し、終了しません。`-f` (`--force`) オプションを付けて実行するか exit コマンドを二連続で実行すると警告を無視してシェルを終了します。

シェル終了時の​トラップが設定されている場合は、シェルが終了する前にそれが実行されます。

## オプション

`-f`
`--force`

  警告を無視してシェルを終了します。

## オペランド

終了ステータス

  終了するシェルの終了ステータスを指定する 0 以上の自然数です。

  このオペランドが与えられていない場合は、exit コマンドの直前に実行されたコマンドの終了ステータスを用います (ただし​トラップを実行中の場合はトラップに入る直前のコマンドの終了ステータス)。

  終了するシェルの実際の終了ステータスは、オペランドで与えられた数を 256 で割った余りになります。

## 終了ステータス

Exit コマンドはシェルを終了するので、exit コマンドそのものの終了ステータスはありません。

例外として、exit コマンドが警告を表示して、シェルを終了しなかった場合、exit コマンドの終了ステータスは非 0 です。

## 補足

Exit コマンドは​特殊組込みコマンドです。

POSIX では、終了ステータスの値は 0 以上 256 未満でなければならないとしています。Yash では拡張として 256 以上の値も受け付けるようになっています。

POSIX には `-f` (`--force`) オプションに関する規定はありません。よってこのオプションは POSIX 準拠モードでは使えません。

シェル終了時のトラップの実行中に exit コマンドを実行すると、再びトラップが実行されることはなくそのままシェルは終了します。このとき exit コマンドに終了ステータスが与えられていない場合は、もし終了時のトラップが設定されていなかった場合にシェルが返したろう終了ステータスでシェルは終了します。(シェルの終了も参照)