我有 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/zshrc
zsh 尝试在该 dtrace 中加载全局配置。