我正在使用 m4 创建一些基本的宏,我意识到在使用 esyscmd
时,命令运行时会在字符串中添加一个尾随的新行。
例子:
define(MY_HOSTNAME, esyscmd(`hostname'))
MY_HOSTNAME
Some other text...
渲染:
> my.host.name
>
> Some other text...
(以尾随换行完成)
通过在定义(或 esyscmd)的末尾添加 dnl
似乎没有任何反应,并且仍然有一个尾随换行符。
在 m4 中调用 esyscmd
时删除尾随换行符的最佳方法是什么?
最佳答案
devnull 的例子很好,但是 M4 也有一个内置的 tr
。这是我正在做的:
define(CMD_OUTPUT, esyscmd(`sass --style=compressed foo.sass'))
define(NL,`
')
translit(CMD_OUTPUT, NL)
M4 好一点的人可以将其压缩为一个宏。
关于bash - 从 m4 中的 esyscmd 中删除尾随换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20648127/