Linux

(t)csh 中的 <<EOF 是什麼意思?

  • April 5, 2021

我有以下命令:

wash -n &lt;groups&gt; &lt;&lt;EOF
echo hi 
echo bye &lt;&lt;BYE

&lt;commands&gt;

exit 0
BYE
exit 0
EOF

&lt;commands&gt;

&lt;groups&gt;一些組和&lt;commands&gt;命令在哪裡。我不明白什麼&lt;&lt;EOF&lt;&lt;BYE意思?如果失敗,腳本會跳轉到某個標籤嗎?這個腳本有什麼作用?

這是一個名為“ here document ”的功能。基本上它意味著&lt;&lt;whatever和之間的文本whatever呈現給命令的標準輸入。在您的情況下,第一個命令看到的標準輸入是,

echo hi 
echo bye &lt;&lt;BYE

&lt;commands&gt;

exit 0
BYE
exit 0

tl;dr: command << TEXT:字元串TEXT被視為文件結尾。

我測試過,它似乎是這樣的:當你這樣做時:

% command &lt;&lt; TEXT

csh 讀取標準輸入,當它擷取TEXT時,將**TEXT之前的完整標準輸入重定向到command。(TEXT必須在單獨的行上才能工作)

引用自:https://unix.stackexchange.com/questions/643620