
bash 変数が定義されているファイルを見つけるにはどうすればよいでしょうか?
echo
コマンドが次のように表示されると仮定します
$ echo $DB_ROOT
/home/mahmood/db-4.0
さて、この変数が定義されているファイルをどうやって見つければよいでしょうか? 定義していないと言わざるを得ません~/.bashrc
。
答え1
数多くの場所でできた定義される。
詳しい説明については、bash
の下にあるマニュアルページを参照する必要がありますINVOCATION
が、すべてを理解するまでにはおそらく頭が痛くなるだろうと警告しておきます :-)
シェルの呼び出し方法と存在するファイルに応じて、次の 1 つ以上の場合があります。
/etc/profile
。/etc/bash.bashrc
~/.bash_profile
。~/.bash_login
。~/.profile
。~/.bashrc
。- オプションで指定されたもの
--rcfile
。 - 環境変数で指定されたもの
BASH_ENV
。 - 環境変数で指定されたもの
ENV
。 - 前のファイルから呼び出される任意のファイル。
参考までに、私は通常、~/.bash_profile
(セットの最高優先度であるため{~/.bash_profile, ~/.bash_login, ~/.profile}
、)があることを確認します。初め(そのグループ内で見つかったもの)
最後に、それがあること~/.bashrc
と、それがソースであることを確認します。~/.bash_profile
こうすることで、~/.bash_profile
ログインシェルに必要なものだけを保持し~/.bashrc
、毎シェル。後者が「累積的な」コマンド(パスの末尾に何かを追加するなど)を保持していないことを確認する必要があります。
他にも設定方法はありますが、特に異なるシェルを使用していて、それらの間でプロファイルを共有する必要がある場合は、上記のスキームがbash
-only 設定で私が見つけた最も簡単な方法です。