Bash環境変数はどこで初期化されますか?

Bash環境変数はどこで初期化されますか?

私が実行したとき:

echo $PYTHONPATH

コマンドラインから次の出力を取得します。

/home/nehal/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages:/home/nehal/anaconda3/lib/python3.6/site-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.6/dist-package‌​s:/home/nehal/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s:/home/userx/anaconda3/lib/python3.5/dist-package‌​s

ファイルを確認してみるとセットが1つ.bashrcだけであることがわかりました。PYTHONPATH

export PYTHONPATH="/home/nehal/anaconda3/lib/python3.6/site-package‌​s:$PYTHONPATH"

私も確認してみましたが、.profileどこでも見つかりません/etc/environmentでした。/etc/profilePYTHONPATH

私の質問は、上記の追加パスがどこから来るのかです。

ベストアンサー1

どのファイルが開いているかを追跡して、bashがどのファイルをインポートしているかを確認できます。

strace -e open bash -l

これにより、bashが開こうとしているすべてのファイルが印刷されます(そのほとんどは無視できるCライブラリです)。これはどこを見るべきかについてのヒントを与えるでしょう。 (Bashの「-l」オプションを使用するには、「ログイン」シェルで実行する必要があります。これにより、通常bashはより多くの起動ファイルを解析します。)

おすすめ記事