Ssh

.zshenv 不是源自 ssh 登錄?

  • March 25, 2016

根據文件

.zshenv除非設置了 -f 選項,否則源自 shell 的所有呼叫。它應該包含設置命令搜尋路徑的命令,以及其他重要的環境變數。.zshenv不應包含產生輸出的命令或假定外殼連接到 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

這些額外的路徑位被添加到我的.zshenv文件中。

這是正常的,還是我有什麼不正常的事情發生?我應該將我的 PATH 修改移到其他地方嗎?

zshenv確實被 shell 的每個實例讀取,但首先讀取它*,*然後再讀取其他任何內容。您$PATH可能正在zprofile~/.zprofile/etc/zprofile,…)中重置。

zshenv不是設置你的好地方$PATH。它屬於zprofile,它負責在登錄時設置環境。設置環境變數zshenv意味著在一個會話中執行簡單的zsh子shell或zsh腳本時它們將被破壞。

引用自:https://unix.stackexchange.com/questions/272123