2017-09-04 166 views

回答

2

<<後面跟任意字符串的意思讀取輸入直到這個字符串,並將所有這些輸出到標準輸出

所以,你會發現:

<<EOF 
Hi, 
This is some plain text. 
EOF 

大部分時間裏,有<<之前的命令。這意味着:讀取輸入並將其發送到命令的stdin。

所以,你會發現,例如:

cat <<EOF 1>&2 
This text is written to the stderr. 
EOF 

但是你可以寫:

<<EOF 1>&2 
This text is written to the stderr. 
EOF 

用同樣的方法,你可以排序的文字:

sort <<EOF 
A 
C 
D 
B 
EOF 

得到A B C D按此順序。

最後,你可以用它來管到另一個命令:

<<EOF | tr a-z A-Z 
This is some text. Yes. 
EOF 

獲得:

THIS IS SOME TEXT. YES. 
+0

的'<< EOF | TR A-Z A-Z'例子不是在bash 4.4工作。它必須是'tr a-z A-Z << EOF' –

+0

是的,取決於shell以及它的版本,可能不支持一些示例。但是任何版本的zsh都支持。 –