gpt4 book ai didi

makefile - Makefile中如何导出环境变量

转载 作者:行者123 更新时间:2023-12-01 22:08:05 30 4
gpt4 key购买 nike

我正在尝试导出环境变量,以便可以在父 shell 中访问它们生成文件:

export-vars:
# extract vars from text file - remove comments - export output
export $$(cat env.txt | grep -v ^# | xargs)

然后当我运行时:

$ make export-vars
$ echo $SOME_VAR_EXPORTED_FROM_MAKEFILE

我希望将文本中的变量设置为环境变量。

对如何在目标/规则中执行此操作有帮助吗?

最佳答案

您不能使用 makefile 或单独的 shell 脚本来执行此操作。当您运行 make 或运行 shell 脚本时,它会创建一个新进程。当该进程退出时,对该进程的环境所做的任何更改都将被丢弃。进程不可能(在类 UNIX 系统中)修改其 进程的环境。

你唯一能做的就是编写一个 shell 函数,它在你正在运行的 shell 进程中调用(它显示你的提示等)或者有一个你源而不是运行的脚本:那将使脚本在同一个 shell 进程中运行,而不是创建一个新的。

所以你可以在你的 ~/.bashrc 或类似的地方写一个 shell 函数:

setvars () { export $(grep -v ^# env.txt | xargs); }

或者您可以编写一个单独的 shell 脚本,但您不能运行它,您必须获取它(. 命令获取脚本而不是运行它):

. set-my-vars.sh

关于makefile - Makefile中如何导出环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381310/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com