m4可以执行用户定义的bash脚本吗



m4宏扩展语言是否可以执行用户定义的bash脚本?考虑m4文件

define(`FOOBAR', `esyscmd(mycmd)') dnl
FOOBAR

其中mycmd是在与m4文件相同的目录中定义的bash文件,看起来像

#!/bin/bash
echo "Hello World"

然而,在对输入文件执行m4时,我得到了错误

sh:1:mycmd:未找到

这是否意味着我需要修改某种变量,该变量包含m4查找特定命令的目录列表?

我希望能够运行awk(甚至python(脚本,并将这些脚本的输出粘贴到相应的宏名称中。

m4可以执行外部程序。你只忘了一件事:PATH。请尝试:

define(`FOOBAR', `esyscmd(./mycmd)') dnl
FOOBAR

请注意./mycmd

最新更新