Bash 環境変数がどのファイルで定義されたか調べたい

Bash にて、export NO_PROXY=localhost といったように、ある環境変数をどこかのファイルで設定しているのだが、どこに書いてあるか分からない、という時に、その調べ方を調べてみた。

コチラの記事に書いてある、以下のコマンドが役に立った。

$ PS4='+$BASH_SOURCE> ' BASH_XTRACEFD=7 bash -xl 7>&2

このコマンドを実行すると、bash -xl で Bash を別に起動し、最初に読み込まれる ~/.bash_profile などの内容を出力してくれる。この出力結果を辿っていけば、目的の環境変数をどのファイルで定義しているかが確認できるだろう。

このコマンドを実行したら $ exit を叩き、起動した bash から抜けておくこと。

この結果をうまいことファイルに書き出したりできないかなーと思ったのだが、どうも上手く行かなかったので断念。

でもとりあえずは profile 系のファイルが最初に呼ばれているはずだから、それらのファイルの順序・所在・内容が読み取れればあとは自力で環境変数の宣言場所を探し出せるかな、と思う。