我是Bash脚本的新手。我遇到了this链接,发现了一种不寻常的cat语法。
cat << !
HOPE THIS WORKS
This sample E-mail message demonstrates how one can attach
files when sending messages with the Unix sendmail utility.
!
uuencode ${file_1} ${file_1}
uuencode ${file_2} ${file_2}
uuencode ${file_3} ${file_3}
!
&lt;&lt;&lt;&lt;&lt;&lt;&lt;意思?什么了!意思?为什么猫有开关!但是uuencode没有?
编辑:感谢您的帮助!我遇到的最后一个突出问题是为什么没有uuencode部分的开头和标记。根据我的理解,猫有<< !
表示它是HEREDOC。然而uuencode
似乎不是HEREDOC。是什么给了什么?
答案 0 :(得分:2)
它叫做heredoc,它的构造如下:
command << MARKER
Literal text here, can contain $variables
and newlines,
leading spaces
and tabs...
MARKER
并且可以使用MARKER
之间的所有内容作为stdin到指定的命令。您使用的标记是可选的,在您的示例中使用!
。如果您在stdin上输入命令cat
,它只会将其打印到stdout:
cat << !
all this text will go to stdout
!