
我剛剛遇到這個<<
指令,用法如下:
cat > outfile.txt <<EOF
Multi-line content
that will be written to outfile.txt
EOF
現在,我不知道這叫什麼,但我很想知道它的名稱,主要是這樣我可以去搜尋並找到有關其語法的更多資訊。遺憾的是,Google搜尋「<<」是行不通的。
答案1
這就是所謂的「此處文檔」。
答案2
它的重定向形式稱為這裡的文檔或者特雷多克。它將給定內聯文檔的內容重新導向到命令。該文件由給定單字分隔(EOT
如下)。在建立一個引用的此處文件後引用單字或部分單字<<
,shell 不會在其中執行擴充。
$ tac << EOT
> 123
> 456
> EOT
456
123
答案3
在 Unix 環境中,它確實被稱為“此處文件”。我相信「heredoc」構造來自 PHP、Perl 和其他腳本語言,對於 shell 腳本,我傾向於堅持使用「here document」。