我的设置是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中是否需要任何特殊处理设置环境变量?
答案 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"
要修复,我会评论这条线。