Ssh
.zshenv 不是源自 ssh 登錄?
根據文件
.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
腳本時它們將被破壞。