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

时间:2014-01-10 07:58:53

标签: path zsh

我的设置是arch linux中的zsh 5.0.5

我在.zshenv

中设置了如下的PATH变量
typeset -U path
path=(~/bin $path)
DW=$HOME/Downloads

但它不起作用。 print $ PATH仅显示

/usr/local/bin:/usr/bin:/usr/bin/vendor_perl:/usr/bin/core_perl

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

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

3 个答案:

答案 0 :(得分:16)

我自己刚刚遇到过这个问题,而真正的答案是Arch上的Zsh来源/etc/profile - 覆盖PATH - 来源{{1} }。

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

答案 1 :(得分:1)

似乎当你有macos或某些Linux发行版时,canonical solution to the problem涉及/etc/paths/etc/paths.d。您应该让/usr/libexec/path_helper使用配置文件为您构建路径。

这立刻解决了我所有地方的问题。

答案 2 :(得分:-1)

我遇到了同样的问题。原因是我的.zshrc(全新安装的oh-my-zsh)覆盖PATH(忽略现有值):

export PATH="/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/core_perl"

要修复,我会评论这条线。