kar*_*bal 7 shell shell-script
bash
我在\xe2\x80\x99s 手册页中未提及的此处文档中遇到了以下语法
cat <<\\EOF\nhello world\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n手册页仅提及分隔符周围的引号及其-
前面的 a 。那么这意味着什么呢?
kar*_*bal 20
事实上,手册页对此进行了详尽的介绍,因为它写道
\n\n\n如果单词的任何部分被引用
\n
其中 \xc2\xbbquoting\xc2\xab 可以是'
,"
或\\
.\n\\EOF
引号的任何运算符E
,其作用与完全引用相同WORD
,从而防止此处文档中的参数扩展。
a="something"\ncat <<\\EOF\n$a\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n和
\na="something"\ncat <<"EOF"\n$a\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n两者都会导致
\n$a\n
Run Code Online (Sandbox Code Playgroud)\n而不是
\nsomething\n
Run Code Online (Sandbox Code Playgroud)\n就像这样
\ncat <<EOF\n$a\nEOF\n
Run Code Online (Sandbox Code Playgroud)\n事实上,由于WORD \xc2\xab 的 \xc2\xbbany 部分可以被引用,您甚至可以使用<<E\\OF
,<<E"O"F
或<<EOF""