環境
Ubuntu 16.04.5 LTS
#はじめに
環境変数を設定する場合、ググると、~/.bash_profile に記述するように書かれている記事が多いが、自分の環境では、デフォルトで、~/.bash_profileが存在していない。この場合、どうすればいいのだろうか。
方法
~/.bash_profileは存在していないが、ホームディレクトリによく似たファイルで、~/.profileが存在している。この中身を見るとヒントがあった。
~/.profile: executed by the command interpreter for login shells.
This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login exists.
see /usr/share/doc/bash/examples/startup-files for examples.
the files are located in the bash-doc package.
~/.profileは、ログインシェルから実行される。
~/.bash_profile または、~/.bash_loginが存在すれば、~/.profileは、実行されまれません。
ここを見て解決した!
https://askubuntu.com/questions/510709/i-cannot-find-bash-profile-in-ubuntu
つまり、ログインシェルは、/etc/profileを読み込んだ後、下記の順番で読み込もうとするようだ。ポイントは、~/.bash_profileが存在していれば、以下のファイルは読み込まれなくなる
という事。
- ~/.bash_profile
- ~/.bash_login
- ~/.profile
~/.bash_profileがないからと言って、新規で、~/.bash_profileを作ってしまうと、デフォルトで存在していた、~/.profileが読み込まれなくなるという事になる。~/.profileの中を見ると分かるのだが、~/.bashrcは、~/.profileから実行されています。
~/.profileを~/.bash_profileにリネームして、~/.bash_profileに環境変数を追加してもいいのだろうが、~/.profileが存在していれば、環境変数は、素直に、~/.profileに記述しましょうというお話でした。
補足
シェルスクリプトの起動順番については、ここの教材でも学習できるよ!
https://www.techpit.jp/courses/190