
次のように使用されるコマンドに遭遇しました<<
:
cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF
さて、これが何と呼ばれているのか全く分かりませんが、その名前を知りたいです。主な目的は、検索して構文について詳しく調べることです。残念ながら、「<<」を Google 検索してもうまくいきません。
答え1
それは「ヒアドキュメント」と呼ばれます。
答え2
これはリダイレクトの一種で、ここに文書またはヒアドキュメント指定されたインライン ドキュメントの内容をコマンドにリダイレクトします。ドキュメントは指定された単語 (EOT
以下) で区切られます。単語またはその一部を後に引用すると、<<
シェルが展開を実行しない引用された here-document が作成されます。
$ tac << EOT
> 123
> 456
> EOT
456
123
答え3
Unix のコンテキストでは、これは実際には「ヒア ドキュメント」として知られています。「ヒアドキュメント」構造は PHP、Perl、およびその他のスクリプト言語に由来するものであり、シェル スクリプトの場合は「ヒア ドキュメント」を使用する傾向があると思います。