Mac下配置環境變量重啟后不生效解決(.bash_profile vs .bashrc)(bash/zsh下不加載.bashrc問題解決)


參考上一篇文章說明:http://www.cnblogs.com/EasonJim/p/6283094.html

得知加載順序如下:

/etc/profile

/etc/paths

~/.bash_profile

~/.bash_login

~/.profile

~/.bashrc

當然/etc/profile和/etc/paths是系統級別的,系統啟動就會加載,后面幾個是當前用戶級的環境變量。后面3個按照從前往后的順序讀取,如果~/.bash_profile文件存在,則后面的幾個文件就會被忽略不讀了,如果~/.bash_profile文件不存在,才會以此類推讀取后面的文件。~/.bashrc沒有上述規則,它是bash shell打開的時候載入的。

也就是說在當前用戶的目錄下,如果又了.bash_profile文件就不會去加載.bashrc文件。

所以如果要能正常加載.bashrc文件,需要在.bash_profile文件的最末尾上加入如下語句:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

參考:http://www.joshstaiger.org/archives/2005/07/bash_profile_vs.html

 

然而,這個修改只是正對base的,如果你沒有修改過,上面的方法默認重啟后就能生效。

但是,現在的mac上有些使用zsh這個作為默認的shell,所以,在啟動shell時,默認不會按上面的套路去加載。

如果想要正常加載.bashrc文件時,就要找到用戶目錄下的.zlogin文件加入如下代碼:

if [ -f ~/.bashrc ]; then
   source ~/.bashrc
fi

即可生效。

參考思路:

http://stackoverflow.com/questions/4493063/best-practice-for-bash-start-up-files-on-a-mac?answertab=active#tab-top

http://superuser.com/questions/866683/iterm-zsh-not-reading-bashrc-or-bash-profile


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM