如果我有一个包含许多命令的m4
脚本:
define(this, that)
define(or,this)
define(other,thing)
我打电话给:
$: m4 script.m4 my_file
输出为:
# N newlines for the N commands in the script
# first line of my file
是否可以在调用m4
时抑制脚本读入产生的N newlines
,或者我是否必须将其包装在一组调用命令(如sed
或grep
)中?
您可以使用dnl
宏删除define
的新行。 例如,从本教程中:
定义宏本身(包括其两个参数)扩展到 空字符串,即不产生任何输出。但是换行符在 上面的 AUTHOR 定义的结尾将回显到输出中。 如果添加到输出的空行是一个问题,那么您可以禁止 它使用"删除到换行符"宏:
define(AUTHOR, W. Shakespeare)dnl
宏的末尾和 dnl 之间没有空格:如果有 然后,该空间将回显到输出。