Mac 上設定 bashrc 無效?

記得以前用Linux的時候,只要把設定寫在 .bashrc 裡面,系統就會自己讀入。

怎麼在MacOS上,寫一些設定在 .bashrc 裡面,都不理我,我不想每次都 source ~/.bashrc 好煩!

原來MacOS裡面有個檔案 .bash_profile,那他和 .bashrc有什麼不一樣呢?

看這個說明

bash_profile is executed for login shells, while .bashrc is executed for interactive non-login shells

.bash_profile 是給 login 過的 shells 吃的,.bashrc 是給沒有 Login 過的 shell 吃的。

問題來了,如何定義登入,我用 MacOS,都有登入,怎麼沒有把 .bashrc 吃進來?

如果你在 MacOS 打開你的Terminal(iTerm),他都是吃 .bash_profile 的!

所以建議是在.bash_profile加下面幾行:

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

然後一些設定還是寫在.bashrc,維持習慣!

參考連結 .bash_profile vs .bashrc