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
!