Read 組込みコマンドは標準入力から行を読み込み変数に代入します。
構文
-
read [-Aer] [-P|-p] 変数名…
説明
Read コマンドは標準入力から一行の文字列を読み込み、それを変数に代入します。
-r
(--raw-mode
) オプションを付けると、行内のバックスラッシュは通常の文字と同様に扱われます。
-r
(--raw-mode
) オプションを付けない場合、読み込んだ文字列の中のバックスラッシュ (\
) は引用符として働きます。バックスラッシュが行末にあるときは行の連結を行います。対話モードのシェルが 2 行目以降を読み込むとき、標準入力が端末ならば PS2
変数の値がプロンプトとして出力されます。
読み込んだ文字列は、単語分割によって分割します。分割後の各文字列が、それぞれオペランドで指定された変数の値に順に設定されます。指定された変数の数より分割結果のほうが多い場合は、最後の変数に残りの分割結果の全てが入ります。分割結果の数より指定された変数のほうが多い場合は、余った変数には空文字列が入ります。
オプション
-
-A
-
--array
-
最後に指定した変数を配列にします。分割後の各文字列が配列の要素として設定されます。
-
-e
-
--line-editing
-
読み込みに行編集を使用します。
行編集が有効になるには以下の条件が全て満たされている必要があります:
-
-P
-
--ps1
-
シェルが対話モードで標準入力が端末ならば、(最初の) 行を読み込む前に
PS1
変数をプロンプトとしてを表示します。 -
-p プロンプト
-
--prompt=プロンプト
-
シェルが対話モードで標準入力が端末ならば、(最初の) 行を読み込む前にプロンプトを表示します。
-
-r
-
--raw-mode
-
読み込んだ文字列の中のバックスラッシュを引用符として扱わないようにします。
オペランド
- 変数名
-
読み込んだ文字列を格納する変数の名前です。
終了ステータス
エラーがない限り read コマンドの終了ステータスは 0 です。
なお、行を完全に読み込む前に入力が終端に達した時は終了ステータスは非 0 になります。
補足
Read コマンドは必須組込みコマンドです。
POSIX では -r
オプションのみが規定されています。他のオプションは POSIX 準拠モードでは使えません。