我正在尝试在 Makefile 中设置一个环境变量,以便它可以在 sam shell 中运行的另一个程序中使用,如 make
,但在 make
之后已经运行。
更新:根据已接受的带有评论的答案,这是不可能的。
脚步:
make test
设置环境:export TEST_ENV_ONE=OneString
TEST_ENV_ONE
试过这个:
不工作:
test:
export TEST_ENV_ONE=OneString
$(shell export TEST_ENV_TWO=TwoString)
之后这是空的:
echo $TEST_ENV_ONE
echo $TEST_ENV_TWO
最佳答案
您的 export TEST_ENV_ONE=OneString
以上是在专用 shell 中运行。后续命令在其他 shell 实例中运行。因此,它们不继承环境变量 TEST_ENV_ONE
.
您可以使用顶级(即不在目标的配方中) export
directive在生成文件中:
export env_var := MyEnvVariable
.PHONY: all
all:
echo env_var: $$env_var
这样,变量
env_var
导出到将执行配方的 shell 。如果您运行
make
使用上面的makefile:$ make
echo env_var: $env_var
env_var: MyEnvVariable
从输出中可以看出,运行
echo env_var: $env_var
的 shell有变量 env_var
在它的环境中。
关于bash - 是否可以在 Makefile 中设置环境变量 - 之后使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52114730/