Yash マニュアル: read 組込みコマンド
Author: magicant
Description: Yash の read 組込みコマンドについて

# Read 組込みコマンド

Read 組込みコマンドは標準入力から行を読み込み変数に代入します。

## 構文

- `read [-Ar] 変数名…`

## 説明

Read コマンドは標準入力から一行の文字列を読み込み、それを変数に代入します。シェルが対話モードで、行編集を利用するオプションが有効ならば、読み込みに行編集を使用します。

`-r` (`--raw-mode`) オプションを付けない場合、読み込んだ文字列の中のバックスラッシュ (`\`) は引用符として働きます。バックスラッシュが行末にあるときは行の連結を行います。対話モードのシェルが 2 行目以降を読み込むとき、標準入力が端末ならば `PS2` 変数の値がプロンプトとして出力されます。

`-r` (`--raw-mode`) オプションを付けると、行内のバックスラッシュは通常の文字と同様に扱われます。

読み込んだ文字列は、単語分割によって分割します。分割後の各文字列が、それぞれオペランドで指定された変数の値に順に設定されます。指定された変数の数より分割結果のほうが多い場合は、最後の変数に残りの分割結果の全てが入ります。分割結果の数より指定された変数のほうが多い場合は、余った変数には空文字列が入ります。

## オプション

`-A`, `--array`
  最後に指定した変数を配列にします。分割後の各文字列が配列の要素として設定されます。
`-r`, `--raw-mode`
  読み込んだ文字列の中のバックスラッシュを引用符として扱わないようにします。

## オペランド

変数名
  読み込んだ文字列を格納する変数の名前です。

## 終了ステータス

エラーがない限り read コマンドの終了ステータスは 0 です。

## 補足

Read コマンドは準特殊組込みコマンドです。

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