OS X 设置环境变量

OS X 设置环境变量

我有 OSX 10.8.2,其中 ZSH 作为我的 shell,iTerm 作为终端(不知道最后一件事是否相关)。我不得不提一下,我对 OSX 还比较陌生。

我正在尝试设置一些环境变量,但我似乎不知道如何设置。

我有两个出口:

export GOBIN=$HOME/go/bin
export PATH=$PATH:$GOBIN

我尝试改变:.bashrc,,,,,,。.bash_profile​ (我使用 xcode 中的属性列表编辑器修改的最后一个)。.profile.zprofile.zshrc~/.MacOSX/environment.plist

我不明白为什么这不起作用。执行此操作的正确方法是什么?

答案1

好吧,我无法立即回答为什么它不起作用。您可以给我们提供更多细节。由于这里缺乏代表,我也无法发表评论(尽管我在其他堆栈交换网站上有代表)。所以我至少会尽力回答这个问题。

首先,如果您实际上使用 zsh,则 ~/.profile 和所有 bash rc 文件都是无关紧要的。继续关注 .zshrc。大多数情况下,对于此类内容来说,这将是正确的 rc 文件。

这类东西通常“有效”,所以我倾向于推测您不理解或遗漏了该过程的某些部分。

首先,确保您实际上正在使用 zsh:

echo $SHELL
echo $0

请分享这个输出。

其次,验证事情是否确实不起作用。您应该已经发布了以下输出:

echo $PATH

在运行命令之前和之后尝试此操作export ...。这是检查某事的唯一方法别的没有发生。

顺便说一句:重新启动是无关紧要的。如果您将这些内容放入 .zshrc 中,只需打开一个新 shell 就足够了。此外,在活动 shell 中运行这些命令可能会更容易进行试验,并且在解决问题之前不要将它们添加到 .zshrc 文件中。

分享此结果,我会回复您。

答案2

这应该适用于~/.zshenv~/.zshrc

如果你有 Xcode,你也应该拥有它dtrace,它可以让你看到系统在执行时尝试打开的文件zsh,这可能会帮助你追踪正在发生的事情

sudo dtrace -n 'syscall::open*:entry { printf("%s %s",execname,copyinstr(arg0)); }' -c zsh

/etc/zshenv奇怪的是,我的 10.7.5 上有一个,但/etc/zshrczsh 尝试在该 dtrace 中加载全局配置。

相关内容