mac,当使用“export ABC=/var/blah/”添加环境变量时,它存储在哪里?

mac,当使用“export ABC=/var/blah/”添加环境变量时,它存储在哪里?

添加环境变量时如下:

导出JAVA_HOME=/usr/java/skd/bin

如果我稍后想编辑它,它会存储在哪里?它是某个文件吗?

答案1

当您导出环境变量时,它不会存储在任何非易失性存储器(如硬盘等)中。它只被 shell 记住,而且只在您手动或使用脚本运行此命令的 shell 中记住。因此,对您的第一个问题的回答可能是“它只存储在内存中,在正在运行的 shell 本地”。当然,您从 shell 运行的任何内容都会继承其环境。

如果您想改变环境变量的值,只需export使用相同的变量名再次运行,如export JAVA_HOME=/usr/other_java/bin

作为塔斯佩奥蒂斯 著名的,如果您希望在每次启动应用程序时恢复环境变量,而无需手动输入,您可以可以使用文件~/.MacOSX/environment.plist

如果您希望仅在终端窗口中设置它,您可以将命令export(就像您在 shell 中输入它一样)添加到文件末尾~/.bashrc(shell 扩展~到您的主目录)。

答案2

如果我稍后想编辑它,它会存储在哪里?

你是什​​么意思稍后再编辑?再次导出。它存储在哪里应该无关紧要,我想象实现可以是特定于 shell 的,也许 shell 会缓存变量。也许不会。无论哪种方式,您都可以在 shell 中读取和写入环境变量,所以我无法想象您为什么需要此文件。

export KEY=VALUE1

...

export KEY=VALUE2

根据记录~/.MacOSX/environment.plist,该文件如下:这里

相关内容