ein*_*ica 6 bash quoting cat backticks
我正在运行以下一段bash代码:
cat << END_TEXT
_ _
| | | |
__ _| |__ ___ __| |
/ _` | '_ \ / __/ _` |
| (_| | |_) | (_| (_| |
\__,_|_.__/ \___\__,_|
END_TEXT
Run Code Online (Sandbox Code Playgroud)
并收到一个错误:
bash: command substitution: line 1: syntax error near unexpected token `|'
bash: command substitution: line 1: ` | '_ \ / __/ _'
Run Code Online (Sandbox Code Playgroud)
无需逃避反击.只需使用引用的here-doc字符串:
cat <<-'END_TEXT'
_ _
| | | |
__ _| |__ ___ __| |
/ _` | '_ \ / __/ _` |
| (_| | |_) | (_| (_| |
\__,_|_.__/ \___\__,_|
END_TEXT
Run Code Online (Sandbox Code Playgroud)
按照man bash:
如果单词是无引号中,这里的文档的所有行进行参数扩展,命令替换和算术扩展,字符序列
\<newline>被忽略,\必须使用来引用字符\,$和`.