名前 | 形式 | 機能説明 | オプション | オペランド | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目
read ユーティリティは、標準入力から 1 行を読み込みます。
デフォルトでは、 -r オプションが指定されない限り、バックスラッシュ文字 (\) をエスケープ文字と見なします。 標準入力が端末装置で、呼び出し側のシェルが対話型のとき、 read は以下の条件が存在していれば プロンプトを表示し、 継続行の入力を要求します。
-r オプションが指定されておらず、バックスラッシュで終わる行を シェルが読み込んだとき。
復帰改行文字の入力後、 here-document ( 各種シェルで << を使用する機能 ) が終了しないとき。
シェル内と同じように、入力行はいくつかのフィールドに分割されます。 先頭のフィールドは最初に指定された変数 var に、次のフィールドは 2 番目の変数 var に、というように割り当てられます。 フィールドの総数より var オペランドの数が少ない場合、余ったフィールドおよびそれらの 区切り文字はすべて最後に指定された var に割り当てられます。フィールドより var の方が多い場合には、余った var には空の文字列が設定されます。
var オペランドで指定された変数の設定は、現在のシェルの 実行環境に影響を及ぼします。 read ユーティリティが、以下に示す例のように、サブシェル内や 別のユーティリティ実行環境で呼び出された場合には、 呼び出し側の環境中のシェル変数には影響を与えません。
(read foo) nohup read ... find . -exec read ... \; |
標準入力はテキストファイルでなければなりません。
標準入力から 1 行を読み取り、内部フィールド区切り文字の IFS(通常は空白文字またはタブ) を用いてワード境界を区切り、 最初のワードを最初の name に、 2 番目のワードを 2 番目の name に、というように 順次割り当てます。 残ったワードは最後の name に割り当てます。 \ に続いて復帰改行 ( NEWLINE ) を入力すれば、行を継続できます。 復帰改行以外の文字の前にバックスラッシュを付加すれば、 その文字を引用できます。 このバックスラッシュは、ワードが name に割り当てられる前に削除され、 バックスラッシュの後に位置する文字は解釈されません。 ファイルの終わりに到達した場合を除き、 戻り値は 0 となります。
以下の表記は、 標準入力の 1 行を variable 値としてロードします ( csh(1) 参照 ) 。
set variable = $< |
シェルの入力機構です。 1 つの行を読み取り、 IFS が示す文字を、区切り文字として使用して 行の内容をいくつかのフィールドに分割します。 エスケープ文字( \)は、次の文字の特別な意味または 行の継続に関する意味を取り除くために使用します。 -r で指定する raw モードでは、 \ が持つこの特殊な意味は無視されます。 第 1 フィールドを 1 番目の name に、 第 2 フィールドを 2 番目の name に、 という順番で割り当てていき、 余ったフィールドがあれば最後の name に割り当てます。 -p オプションは、 シェルが |& を使用して生成したプロセスの入力パイプから入力行を取り出します。 -s フラグは、 入力をコマンドとして履歴ファイルに保存します。 -u フラグは、 読み取り元となるファイル記述子番号を 1 桁の数値 n で指定します。 ファイル記述子は、 exec という特殊コマンドでオープンできます。 n のデフォルト値は 0 です。 name を省略すると、 REPLY の値をデフォルトとして使用します。 入力ファイルが読み込み用にオープンされていない場合と ファイルの終わりに到達した場合を除き、 終了ステータスは 0 です。 -p オプションが指定されていてファイルの終わりを検出すると、 このプロセスをクリアし別のプロセスを作成可能にします。 最初の引数が ? を含んでいると、 シェルが対話型のとき、 このワードの残りを標準エラーに対する プロンプトとして使用します。 ファイルの終わりに到達しないかぎり、 終了ステータスは 0 です。
以下に示す /usr/bin/read の例は、入力ファイルの内容を、各行の先頭フィールドを最後尾に 移動して出力するものです。
while read -r xx yy do printf "%s %s\n" "$yy" "$xx" done < input_file |
read の実行に影響を与える環境変数 LC_CTYPE、 LC_MESSAGES、 NLSPATH についての詳細は、 environ(5) を参照してください。
フィールドを区切るのに使われている、 内部フィールド区切り文字を定義します。
対話型シェルが標準エラー出力に出力するプロンプトの文字列を 定義します。プロンプトが出力されるのは、 -r オプションが指定されておらずバックスラッシュで終わる行を 読み込んだとき、または復帰改行文字の入力後に here-document が終了しないときです。
次の属性については attributes(5) のマニュアルページを参照してください。
属性タイプ | 属性値 |
使用条件 | SUNWcsu |
名前 | 形式 | 機能説明 | オプション | オペランド | 使用例 | 環境 | 終了ステータス | 属性 | 関連項目