參考上一篇文章說明: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://superuser.com/questions/866683/iterm-zsh-not-reading-bashrc-or-bash-profile