Command-Line
如何讓 Z shell 同時尊重 ~/.zshrc 和 ~/.profile?
我在 Mac 上使用 Z shell,並且在我的主目錄中的 .zshrc 和 .profile 中都有一些設置。
我發現當我只有.profile時,zsh import .profile in a new session;當我同時擁有 .profile 和 .zshrc 時,zsh 只導入 .zshrc 而忽略 .profile。
有沒有辦法讓shell尊重兩個設置文件,或者在.zshrc中導入.profile?
Zsh 通常是在登錄時而
.zprofile
不是.profile
在登錄時獲取。.zshrc
(如果登錄沒有進入互動式會話,它將不會獲取源。)但是,如果您希望它獲取源.profile
並且那裡沒有特定於另一個 shell 的內容(例如特定於 bash 的東西),您總是可以放入source .profile
文件中.zprofile
。
.zshrc
是在呼叫互動式 shell 時獲取的,無論它是否是登錄 shell。.zprofile
但是,如果您沒有登錄,它不會再次來源。我只是將您想要始終獲取的所有內容放在兩個文件之一中,然後讓另一個文件獲取該文件。例如,我將所有的別名和環境變數保存在 my 中
.zshrc
,並在 my 中保留該行source $HOME/.zshrc
,.zprofile
因此即使在非互動式登錄 shell 中也始終可以讀取它。只是要確保不要讓他們每個人都互相來源,這很誘人,因為這顯然會產生無限循環。
您還可以將第三個文件用於您想要做的事情,並讓它們都獲取第三個文件。