read(1)
read --
標準入力からの行の読み込み
形式
/usr/bin/read [-r] var ...
機能説明
このシェルスクリプトは、/u95/bin/sh( ) シェルが提供している同じ名前の組み込みコマンドを実行します。このシェルの詳細については、ksh(1) を参照してください。
read コマンドは、標準入力から単一行を読み込みます。-r オプションを指定しない限り、バックスラッシュ(\)はエスケープ文字として機能します。標準入力が端末装置で、起動中のシェルが対話型の場合、read は 継続行を以下の場合に要求します。
-
-r オプションを指定していない場合に、シェルがバックスラッシュで終わる入力行を読み込んだ場合
-
復帰改行文字の入力後に現文書が終わっていない場合
行は、シェル内のようにフィールドに分割されます。最初のフィールドを最初の変数(var)に割り当て、2 番目のフィールドを 2 番目の変数にというように割り当てていきます。フィールド数よりも指定した var オペランドの方が少ない場合、残りのフィールドとフィールド間の分離記号を、最後の var に割り当てます。var オペランドよりもフィールドの方が少ない場合は、残りの var オペランドに空の文字列を設定します。var オペランドによって指定した変数の設定は、カレントシェル実行環境に影響を与えます。以下のようなサブシェルか独立したユーティリティ実行環境で呼び出す場合、呼び出し側の環境にあるシェル変数には影響しません。
(read foo)
nohup read ...
find . -exec read ... \;
フラグ
- -r
-
特殊文字としてバックスラッシュ文字を処理しません。各バックスラッシュ文字を入力行の一部と見なします。
オペランド
- var
-
既存のまたは存在していないシェル変数の名前
入力
標準入力は、テキストファイルでなければなりません。
環境変数
read の実行に影響する環境変数は、以下のとおりです。
- IFS
-
フィールドの範囲を設定するのに使用される内部フィールドセパレータを決定します。ksh(1) を参照してください。
- LANG
-
国際化変数が未設定またはヌルの場合の省略値を設定します。LANG が未設定またはヌルの場合、処理系に固有の省略時ロケールから、対応する値を使用します。国際化変数のいずれかに無効な値がある場合、このユーティリティの動作は、変数をまったく定義していない場合と同じになります。
- LC_ALL
-
値として空でない文字列を設定した場合は、他の国際化変数をすべて無効にします。
- LC_CTYPE
-
テキストデータ中にある一続きのバイトを文字として解釈するロケール(たとえば、引き数のマルチバイト文字に対するシングルバイト文字)を決定します。
- LC_MESSAGES
-
標準エラーに出力される診断メッセージの形式と内容を左右するロケールを決定します。
- PS2
-
行末にバックスラッシュがある行を読み込んだときに -r オプションを指定していなかったり、復帰改行文字の入力後も現文書が終了していない場合に、対話型シェルが標準エラーに書き込むプロンプト文字列を指定します。
終了コード
終了コード 0 は、正常終了を示します。0 よりも大きい終了コードは、ファイルの終わりが検出されたかエラーが発生したことを示します。
診断
標準エラーは、診断メッセージに使用され、継続行を要求します。
使用法
-r を指定していないときに行末にバックスラッシュが続いているファイルの終わりが検出された場合、結果は不定となります。
使用例
以下のシェルコマンドは、各行の最初のフィールドを行末に移動した状態でファイルを出力します。
while read -r xx yy
do
printf "%s %s\n" "$yy" "$xx"
done < input_file
関連項目
ksh(1)
SCO UnixWare Forum Beta Release (BL12) -- September 1997
© 1997 The Santa Cruz Operation, Inc. All rights reserved.