新しいターミナルを開くときは、source ~/.bashrc
変数を初期化する前にsource ~./bash_profile
または$PATH
を実行する必要があります。 .bashrc
はこれを自動的に行ったと思いましたか?どうすればそれを行う必要がないようにできますか。
私はあなたの質問を理解しているかどうかわかりませんが:
Bashinitファイルは起動時にソース化する必要があります。そうでない場合は、システムの構成が不適切であるか、壊れています。
オペレーティングシステムについては触れていませんが、Linuxを使用していると思います。
man bash
による初期化の順序は次のとおりです。
Bashがインタラクティブログインシェルとして、または--loginオプションを指定した非インタラクティブシェルとして呼び出されると、最初にファイルからコマンドを読み取って実行します/ etc/profile、そのファイルが存在する場合。そのファイルを読み取った後、〜/ .bash_profile、〜/ .bash_login、〜/ .profileの順に検索し、存在し、読み取り可能な最初のコマンドからコマンドを読み取って実行します。 --noprofileオプションは、シェルの起動時にこの動作を禁止するために使用できます。
ログインシェルではないインタラクティブシェルが開始されると、bashは/ etc/bash.bashrcおよび〜 /.bashrc、これらのファイルが存在する場合。これは、-norcオプションを使用することで禁止できます。 --rcfile fileオプションは、/ etc/bash.bashrcおよび〜/ .bashrcの代わりに、bashにファイルからコマンドを読み取って実行するように強制します。
たとえば、Ubuntuディストリビューションでは、/etc/profile
をロードした後、次のような~/.profile
ファイルを探します。
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
つまり、bashを使用していて、ファイル~/.bashrc
が存在する場合、それはロード/ソースされ、その後、$ PATH変数が設定されます。
したがって、最初に~/.profile
ファイルを確認し、必要に応じて修正することをお勧めします。