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

时间:2018-12-11 07:07:42

标签: m4

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

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

其中,mycmd是一个bash文件,与m4文件位于同一目录中,该文件看起来像

#!/bin/bash

echo "Hello World"

但是,在输入文件上执行m4时出现错误

  

sh:1:mycmd:未找到

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

我希望能够运行awk(甚至python)脚本并将这些脚本的输出替换为相应的宏名称。

1 个答案:

答案 0 :(得分:1)

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

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

请注意./mycmd