next up previous contents
Next: エラー出力を標準出力にマージする Up: 入出力の切り換え(I/O redirection) Previous: 入出力の切り換え(I/O redirection)

ヒアドキュメント(here document)

 

<< はヒアドキュメントと呼ばれる興味深いメカニズムを提供して くれます。 通常の仕事でコマンドとそれが参照するデ−タが対になることがしばしば 起こります。例えば電話番号簿などでは検索プログラムとデータファイルの2つ が必要になります。ヒアドキュメント機能を利用してシェルスクリプトを書けば これらのファイルを1つにまとめることができ、保守性やディスクの使用効率が 良くなります。[「6.3 ハノイの塔」(p.gif) 参照]

grep $1 <<' END-OF-FILE '
JAL:(03)5489-1111
JAS:(03)3438-1155
ANA:(03)3272-1212
 
KLM:(03)3216-0771
END-OF-FILE
この例を理解するにはシェルスクリプトの基礎知識が必要になりますが、簡単 にメカニズムを説明します。grep は文字列検索プログラムで、$1 はシェルに よりコマンドラインで指定されたキーワードと置き換えられます。 シェルは << を見つけると、それに続く文字列 END-OF-FILE を EOFマークとして覚えます。 そして、その直後の行から次のEOFマークの直前の行までをコマンドgrepへの入力に 結合します。ヒアドキュメントのEOFマークは1行単位で評価されますからEOFマーク には途中のデータ行に出現しない文字列を選ばなければなりません。



Riichiro Saito
1995年08月29日(火) 11時41分26秒 JST