Command-Line

如何讓 Z shell 同時尊重 ~/.zshrc 和 ~/.profile?

  • April 19, 2022

我在 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 中也始終可以讀取它。

只是要確保不要讓他們每個人都互相來源,這很誘人,因為這顯然會產生無限循環。

您還可以將第三個文件用於您想要做的事情,並讓它們都獲取第三個文件。

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