我正在尝试通过链接的http://mbreen.com/m4.html
学习m4我有一个模板:
define(TPL, World)
Hello TPL
当我呼叫m4 -D TPL=foo template.m4
时,它会输出Hello World
,我不太理解,因为当我呼叫m4 -D TPL=123 template.m4
时,它会按预期的Hello 123
输出。
我这是预期的行为吗?在指南或手册页中找不到关于此的任何内容
答案 0 :(得分:0)
这是预期的行为。说明:如果添加-D TPL=foo
,则m4
文件将是:
define(foo, World)
Hello foo
请注意,TPL
中的define
也有所更改!
如果您使用TPL=123
,则define(123, World)
无效,因为有效的m4
宏名称为[a-zA-Z_][a-zA-Z0-9_]*
,因此应以字母或下划线开头-并且可以不是以数字开头。