我正在尝试导出环境变量,以便可以在父 shell MakeFile 中访问它们:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句