= Read 組込みコマンド
:encoding: UTF-8
:lang: ja
//:title: Yash マニュアル - Read 組込みコマンド

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

[[syntax]]
== 構文

- +read [-Ar] {{変数名}}...+

[[description]]
== 説明

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

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

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

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

[[options]]
== オプション

+-A+::
+--array+::
最後に指定した変数をlink:params.html#arrays[配列]にします。分割後の各文字列が配列の要素として設定されます。

+-r+::
+--raw-mode+::
読み込んだ文字列の中のバックスラッシュを引用符として扱わないようにします。

[[operands]]
== オペランド

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

[[exitstatus]]
== 終了ステータス

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

[[notes]]
== 補足

Read コマンドはlink:builtin.html#types[準特殊組込みコマンド]です。

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

// vim: set filetype=asciidoc expandtab:
