.zshenv或​​.zshrc中的PATH变量

kRe*_*oSo 13 zsh path

我的设置是在linux linux中的zsh 5.0.5

我在.zshenv中设置了如下的PATH变量

typeset -U path
path=(~/bin $path)
DW=$HOME/Downloads
Run Code Online (Sandbox Code Playgroud)

但它不起作用.打印$ PATH仅显示

/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl
Run Code Online (Sandbox Code Playgroud)

.zshenv被读了,因为我可以看到设置了DW变量.仅设置了PATH变量.而我不明白的是,在将.zshenv重命名为.zshrc后,PATH变量才能正常工作.

在.zshenv中需要任何特殊处理设置环境变量吗?

Adr*_*ter 18

我自己刚刚遇到这个问题,真正的答案是Zsh在Arch源码/etc/profile- 覆盖和导出PATH - 来源.~/.zshenv

请参阅:https://wiki.archlinux.org/index.php/Zsh#Configuration_files

  • 哇.同样在MacOSX上,顺便说一下.非常意外的行为 - 至少对我而言. (8认同)
  • 我在_Arch Linux_上遇到了同样的问题.罪魁祸首是`/ etc/zsh/zprofile`文件,它表示`模拟sh -c'源/ etc/profile'`.我发现它的原因是我的`SublimeLinter`无法正确读取`PERL5LIB`! (2认同)