在模式规则中,我想导出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 以调用用户的权限运行,则不会有额外的危险。