如何在Makefile规则中将环境变量传递给Shell脚本

时间:2019-07-29 06:42:42

标签: bash shell makefile

我在Makefile中有一条规则,该规则试图使用env变量呈现某些文本,每当将其传递给$(shell)命令时,我总是将其清空为空

以下是我正在尝试传递的env变量的Makefile

SHELL := /bin/bash

test:
    $(MAKE) do_test VAR=test

do_test:
        echo $(shell cat file.txt | env VAR=$(VAR) python -m mypackage.render)

当我像| env VAR=test python -m mypackage.render这样传递env参数时,我可以看到结果,但是我总是得到带有env变量的空字符串

1 个答案:

答案 0 :(得分:0)

问题是make $(shell ...)调用。您可能需要命令替换(shell功能)。并杀死一只无用的猫。

test:
    $(MAKE) do_test VAR=test

do_test:
    VAR=$(VAR) python -m mypackage.render < file.txt

请注意,不建议在Makefile中设置SHELL