一个简单的GNU m4问题,但我找不到正确的答案。我想打印一个开始/结束代码部分的标记头:
回音你好
如何创建包含3个背板的GNU M4宏?就像这样
define(`md_code',````')
md_code
echo Hello
md_code发布于 2015-04-09 16:33:48
从M4邮件列表中得到了Eric的答复:http://lists.gnu.org/archive/html/m4-discuss/2015-04/msg00004.html
长春花是你的朋友。这样可以做到:
define(`md_code', changequote([,
])[changequote([,])```changequote(`,')]changequote(`,'))我必须更改两次引号:一次是围绕宏定义,因为定义本身打算以不平衡的方式使用(倒带);另一次是在宏扩展中,因为扩展将以不平衡的方式输出回退;对于每一次更改的引号,必须还原原来的引号。这假设默认的引用在整个m4运行过程中保持在(backticks)‘。 尽管在您的情况下,我建议先使用changequote,然后在全局上根据这些引用规则而不是默认的(backticks)引用规则编写您的输入。请记住,autoconf有意使用作为引用字符,因为它们很可能在输出上是平衡的,而不是(backticks)和“在shell脚本中没有发生在平衡对中”。事实上,选择2或3字节的引用字符串甚至不那么含糊,尽管它需要更多的类型。
https://stackoverflow.com/questions/29522699
复制相似问题