我正在使用 Ubuntu 9.04
我正在尝试添加一些系统范围的环境变量,我希望它们对 bash 和 zsh(我的主 shell)都可见,我将它们添加到 /etc/profile,但不幸的是我在 zsh 中看不到它们
我发现 Ubuntu 有一个文件 /etc/environment,它仅用于环境变量(而不是一般脚本),但 zsh 不遵守该文件。
当我尝试手动获取 /etc/profile 时,我得到了以下输出(我猜它没有将其解析到最后)
$ source /etc/profile
/etc/profile:5: no matches found: /etc/profile.d/*.sh
答案1
手册页zsh(1)
指出 zsh 读取/etc/zsh/zprofile
。您可以简单地在那里添加一个命令来获取来源/etc/profile
。
答案2
正确的答案应该是使用/etc/environment
如下方法:
MYVAR=myvalue
因为它与 shell 无关。在此处设置的环境变量适用于所有帐户的所有 shell(sh、bash、zsh 等)。参考这里(也适用于 Ubuntu 和其他发行版)。
如果您尝试过但没有成功,那么您可能忘记注销并重新登录以使它生效。至于/etc/zsh/zprofile
,我的已经包含(默认情况下)一行,其来源为/etc/profile
:
emulate sh -c 'source /etc/profile'