osx – 在zsh中放置$PATH变量断言的位置?

我爱zsh,但我不知道在哪里放置我的$ PATH和其他变量断言?我发现他们分散在文件.zshrc .zprofile .bashrc .bash_profile之间,有时加倍。

我意识到,有什么内部的bash文件没有什么意义看到我使用zsh,但在哪里我应该放置我的rvm,python,节点等添加到我的$ PATH?

是否有一个特定的文件,我应该使用(即.zshenv目前不存在于我的安装),我目前使用的,或者甚至是重要吗?

tl; dr版本:使用〜/ .zshrc和read the man page来了解〜/ .zshrc,〜/ .zshenv和〜/ .zprofile之间的区别。

关于我的评论

在我对kev gave答案的评论中,我说:

This seems to be incorrect – /etc/profile isn’t listed in any zsh documentation I can find.

这证明是部分不正确:/ etc / profile可能来源于zsh。然而,这只会发生,如果zsh是“调用sh​​或ksh”;在这些兼容模式下:

The usual zsh startup/shutdown scripts are not executed. Login shells source /etc/profile followed by $HOME/.profile. If the ENV environment variable is set on invocation, $ENV is sourced after the profile scripts. The value of ENV is subjected to parameter expansion, command substitution, and arithmetic expansion before being interpreted as a pathname. [07002].

ArchWiki ZSH link说:

At login, Zsh sources the following files in this order:
/etc/profile
This file is sourced by all Bourne-compatible shells upon login

这意味着/ etc / profile总是在登录时由zsh读取 – 我没有任何Arch Linux项目的经验;维基可能是正确的分布,但它一般是不正确的。与zsh手册页相比,信息不正确,似乎不适用于OS X上的zsh(/ etc / profile中设置的$ PATH中的路径不适用于我的zsh会话)。

为了解决这个问题:

where exactly should I be placing my rvm, python, node etc additions to my $PATH?

一般来说,我会从〜/ .zshrc导出我的$ PATH,但是值得读一下zshall手册页,特别是“STARTUP / SHUTDOWN FILES”部分 – 〜/ .zshrc是为交互式shell读取的,不适合你的需要 – 如果你想要每个zsh shell调用你的$ PATH(交互式和非,无论是登录还是不是等等),那么〜/ .zshenv是一个更好的选择。

Is there a specific file I should be using (i.e. .zshenv which does not currently exist in my installation), one of the ones I am currently using, or does it even matter?

启动时读取一堆文件(检查链接的手册页),有一个原因 – 每个文件都有它的特定位置(每个用户的设置,用户特定的设置,登录shell的设置,每个shell的设置,等)。
不要担心〜/ .zshenv不存在 – 如果你需要它,使它,它会被阅读。

.bashrc和.bash_profile不会被zsh读取,除非你显式地从〜/ .zshrc或类似的源代码。 bash和zsh之间的语法并不总是兼容的。 .bashrc和.bash_profile都是为bash设置而设计的,而不是zsh设置。

http://stackoverflow.com/questions/10574684/where-to-place-path-variable-assertions-in-zsh

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:osx – 在zsh中放置$PATH变量断言的位置?