m4宏扩展语言可以执行用户定义的bash脚本吗?考虑使用m4文件
define(`FOOBAR', `esyscmd(mycmd)') dnl
FOOBAR
其中,mycmd是一个bash文件,与m4文件位于同一目录中,该文件看起来像
#!/bin/bash
echo "Hello World"
但是,在输入文件上执行m4时出现错误
sh:1:mycmd:未找到
这是否意味着我需要修改某种变量,其中包含m4查找特定命令的目录列表?
我希望能够运行awk(甚至python)脚本并将这些脚本的输出替换为相应的宏名称。
答案 0 :(得分:1)
m4
可以执行外部程序。您只忘记了一件事:PATH
。请尝试:
define(`FOOBAR', `esyscmd(./mycmd)') dnl
FOOBAR
请注意./mycmd
!