# Break 組込みコマンド

Break 組込みコマンドは実行中のループを中断します。

## 構文

- `break [深さ]`

- `break -i`

## 説明

`-i` (`--iteration`) オプションを付けずに実行すると、break コマンドは現在実行中の for ループまたは while ループまたは until ループを中断します。多重ループの中で実行した場合、内側から数えて深さ番目のループを中断します。深さが指定されていないときは、最も内側のループを中断します (深さ = 1)。指定された深さが実際に実行している多重ループの深さより大きい場合は最も外側のループを中断します。

`-i` (`--iteration`) オプションを付けて実行すると、break コマンドは現在実行中の​反復実行を中断します。

## オプション

`-i`
`--iteration`

  ループではなく反復実行を中断します。

## オペランド

nest

  内側から何番目のループを中断するのかを指定する 1 以上の自然数です。

## 終了ステータス

ループの中断に成功すると終了ステータスは 0 です。反復実行の中断に成功すると break コマンドの直前に実行されたコマンドの終了ステータスが break コマンドの終了ステータスになります。

## 補足

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

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

POSIX では、break コマンドを構文的に取り囲んでいないループの扱いを規定していません。例えば以下のような場合が該当します:

- ループの中で​関数が実行され、その中で break コマンドが実行される

- ループの実行中に​トラップが実行され、その中で break コマンドが実行される

Yash では、このようなループは break の対象に出来ません。