< 的正确文本名称

< 的正确文本名称

我刚刚遇到这个<<命令,使用方式如下:

cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF

现在,我不知道这叫什么,但我很想知道它的名称,主要是这样我可以去搜索并找到有关其语法的更多信息。遗憾的是,谷歌搜索“<<”是行不通的。

答案1

这被称为“此处的文档”。

http://en.wikipedia.org/wiki/Here_document

答案2

它的重定向形式称为这里的文档或者特雷多克。它将给定内联文档的内容重定向到命令。该文档由给定单词分隔(EOT如下)。在创建一个引用的此处文档后引用单词或部分单词<<,shell 不会在其中执行扩展。

$ tac << EOT
> 123
> 456
> EOT
456
123

答案3

在 Unix 环境中,它确实被称为“此处文档”。我相信“heredoc”构造来自 PHP、Perl 和其他脚本语言,对于 shell 脚本,我倾向于坚持使用“here document”。

相关内容