2
我正在使用M4扩展某些文件的系统,但我在某些情况下遇到扩展问题。用于定义/宏命名(我宁愿不如果可能的话改变)的约定是__<name>__
(即双前端和后端下划线。)因此,这正常展开:使m4看到宏时宏以宏字符结束与字符串跟随宏
define(`__ROOT__', `/home/mydir')
...
__ROOT__/bin
给
/home/mydir/bin
但,
define(`__PREFIX__', `App_Mnemonic')
...
__PREFIX___some_service
应该给:
App_Mnemonic_some_service
但给人
__PREFIX___some_service
(即它错过了扩展)
我认为在宏的尾部下划线和底层文本的有效下划线之间缺少空格是令人困惑的m4。我能做些什么吗?我可以使用静音大括号来分隔宏,例如,像环境变量一样?真的