如何在M4中转义井号(#)?
我的M4宏是这样的:
define(`lnk',<a target="_blank" href="$1">$1</a>)dnl
我正在这样使用它:
lnk(http://www.example.com)
要产生这个:
<a target="_blank" href="http://www.example.com">http://www.example.com</a>
我的问题是当我尝试像这样使用它时:
lnk(http://www.example.com#anchor)
然后我得到这个错误:
ERROR: end of file in argument list
那是因为井号(#)。我怎样才能解决这个问题?我必须在M4中转义哈希字符吗?
我正在使用从gnuwin32项目下载的Windows M4(使用Win 10 x64)
答案 0 :(得分:0)
由于不必要的扩展,您应该引用字符串。就您而言:
lnk(`http://www.example.com#anchor')
但是您可以禁用或重新定义注释字符。开头的默认值为#
,结尾的默认值为换行符。此宏为changecom
(请参见here)。
changecom()dnl
define(`lnk',<a target="_blank" href="$1">$1</a>)dnl
lnk(http://www.example.com#anchor)