めあとるーむ記録帳

なんか書く

Bash on Windows での .bash_profile の扱い

環境変数やらを扱う際に使うときは .bashrc と .bash_profile の二つがある。これらの違いはログイン時に読み込まれるかシェル起動時に読み込まれるかの違いがある。

参考

qiita.com

これによると .bashrc はシェル起動時、.bash_profile はログイン時とある。

通常ならこれでいいのだが、さて Bash on Windows ではどうなるのか。というのも、ログインタイミングはユーザログイン時なのか bash 起動時なのかわからない。シェル起動時というのは bash 起動時でいいのか。

で、(わかっている)結論から書くと、bash 起動時はログインとは取られていない。

そもそもデフォルトではホームディレクトリに .bash_profile はないのでひょっとするとログイン時という処理は特別な扱いをされていて読み込まれないのかもしれない。

もし環境変数を設定したい場合は .bash_profile ではなく .bashrc に書いておくのが安パイかもしれない。でも正しい処理ではないのであくまで Bash on Windows ではそうしておく程度に考えた方がよさそう。

ちなみにシェル再起動のコマンドは exec $SHELL -l で再起動する。何かあれば .bashrc に書き足した後にこのコマンドを実行すればとりあえず使えるようになるはず。

本当はちゃんといくつかのパターン(再起動とか)で検証するのが正しいんだろうけど時間がないので誰かやってくれると助かる。