.bash_profile と .bashrc の読み込みルール

仕事で新しいMacを導入した。デフォルトはzshになっているけど、自分は普段bashを使っているので、bashに変更した。

そして、いつも使っている.bashrcを持ってきてホームディレクトリに置いたのだが、プロンプトが切り替わってくれない。ターミナルを開いた時に.bashrcで指定したいつものプロンプトになっていない。

「bash」とタイプすると、ちゃんとプロンプトが切り替わる。なのでデフォルトがbashになっていないのだと思った。

それでググって出てくるシェルを変える方法を片っ端から試したのだが、効果なし。しかし、ダメ元で echo $SHELL をしてみたら事実がわかった。

$ echo $SHELL
/bin/bash

ちゃんとbashになっていた!

つまりこういうことだった。ターミナルのデフォルトでbashで起動した時は.bash_profile が呼ばれるだけで、.bashrcは呼ばれない。

bashと叩いた時は.bashrcが呼ばれるようになっている。

つまり常に期待通りの動作をしてほしいときは .bash_profile の中で.bashrcを呼ぶようにすればよかった。

気づいてしまえば当たり前だが、.bashrcと.bash_profileの違いをよく理解しておらず、ちょっとハマってしまったのでメモ。