Way*_*ner 1 login ssh zsh path environment-variables
根据文档
.zshenv除非设置了 -f 选项,否则源自 shell 的所有调用。它应该包含设置命令搜索路径的命令,以及其他重要的环境变量。.zshenv不应包含产生输出的命令或假设 shell 附加到 tty。
好的,很酷,所以我认为通过 ssh 登录被认为是对 zsh 的调用......但也许不是?
wayne@arglefraster ~
? echo $PATH 10:01:17
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
wayne@arglefraster ~
? zsh 10:01:20
e%
wayne@arglefraster ~
? echo $PATH 10:01:24
/usr/local/heroku/bin:/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/wayne/.rvm/bin:/home/wayne/.bin:/home/wayne/.local/bin
Run Code Online (Sandbox Code Playgroud)
那些额外的路径位被添加到我的.zshenv文件中。
这是正常的,还是我有什么奇怪的事情发生?我应该将我的 PATH 修改移到别处吗?
zshenv确实由 shell 的每个实例读取,但它首先被读取,在其他任何事情之前。您$PATH可能正在zprofile(~/.zprofile或/etc/zprofile, ...) 中重置。
zshenv不是设置您的$PATH. 它属于zprofile,它的任务是在登录时设置环境。设置环境变量zshenv意味着在一个会话中运行简单的zsh子 shell 或zsh脚本时,它们会被破坏。