ヒアドキュメント【here document】ヒア文字列

概要

ヒアドキュメントとは、プログラミング言語などの機能の一つで、改行引用符、特殊記号などを含む複数行の文字列リテラルソースコード中にそのまま記述するための構文。UNIX系OSシェルスクリプトスクリプト言語などでよく使われる。
ヒアドキュメントのイメージ画像

多くの言語ではプログラム中の文字列リテラル引用符クォーテーションマーク)で囲んで記述するが、改行引用符を含む長い文字列をこの方法で書くとそれらの特殊文字が現れる度にエスケープ記法が必要となり、コードが読みにくくなる。

ヒアドキュメントでは開始位置と終了位置を特定の文字パターンで示し、その間に書いた内容をそのまま一つの文字列として扱うことができる。設定ファイルの内容やHTMLSQL文メール本文など、ある程度まとまった量のテキストをコード中に直に記述する必要がある場合によく利用される。

構文は言語によって異なるが、共通するパターンがある。ヒアドキュメントの開始を示す記号の直後に終端識別子を指定し、次の行から文字列の内容を記述する。行頭に同じ終端識別子が単独で現れた時点で終了となり、そこまでの内容が文字列として解釈される。終端識別子には任意の文字列を使用でき、慣用的に「EOF」や「END」などがよく用いられる。

例えば、bashなどのシェルスクリプトでは「<<」に続けて終端識別子を記述し、その後の複数行をコマンド標準入力として渡す。ファイル生成やメッセージ出力、外部プログラムへのデータ受け渡しなどに広く利用されている。PerlPHPRubyにも同様の仕組みがあり、それぞれ独自の構文を備えている。Pythonにはヒアドキュメント構文は存在しないが、三連引用符(「"""」または「'''」)が同様の目的に使われる。

ヒアドキュメント内での変数展開の可否は言語や記法によって異なる。bashでは終端識別子をシングルクォート(')で囲むと展開が抑制され、囲まなければ変数が展開される。この違いを利用して、内容を動的に生成する用途と、記述内容をそのまま保持する用途を使い分けることができる。近年のプログラミング言語ではテンプレート文字列など目的の近い機能も提供されているが、ヒアドキュメントは開始・終端識別子で範囲を囲む方式の構文を指すことが一般的である。

(2026.6.10更新)
 

他の辞典等による「ヒアドキュメント」の解説 (外部サイト)

この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。