Shell 三个反引号的 STDIN 重定向

Shell STDIN redirection of three backticks

动机

我有一个 Markdown 反引号代码块,我想将它插入到列表项中。为了好玩,我尝试将 awk 与 STDIN 重定向一起使用。我运行陷入以下问题。

问题

我改编自Tutorials Point的示例来计算 Markdown 代码块的行数。

$ wc -l << EOF
```
codeblock
```
EOF

如何让 shell 解析 STDIN 中的奇数个反引号?

感谢阅读。

反引号用于 command substitution, and command substitutions are expanded in here documents。您应该引用 EOF -这将禁用所有扩展-,或者转义那些反引号。

$ wc -l << 'EOF'
```
codeblock
```
EOF

3
$ 
$ wc -l << EOF 
\`\`\`
codeblock
\`\`\`
EOF

3