将 Make 变量传递给从 Make 内部调用的 Bashscript

将 Make 变量传递给从 Make 内部调用的 Bashscript

在模式规则中,我想导出make变量,如$(TargetLocation), $@

我尝试了以下操作,但它没有被导出。 bash 脚本是可执行的。

export $(TargetLocation); \
export $@; \
./EditHtml.sh;

我也尝试过这个(我使用${VarA}而不是${TargetLocation}内部bash脚本),但它没有被导出:

./EditHtml.sh VarA=$(TargetLocation); \

我想在 Bash 脚本中使用这些变量。有什么建议么?

答案1

您需要导出变量名称,而不是值。

export您可以使用 GNU Make语句导出所有子进程的名称

export TargetLocation

如果您只需要一条规则的值,那么您的语句必须是常规 shell 语法

    export TargetLocation="$(TargetLocation)"; \
    ./EditHtml.sh

在这种情况下,根据变量的内容,引号可能是必要的,并且如果变量可能有任意值,则仍然容易受到攻击。另一方面,如果 make 以调用用户的权限运行,则不会有额外的危险。

相关内容