私の.profile
ファイルには次の行があります。
# source bashrc if it exists
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
私のファイルが存在することを確認してください.bashrc
(存在する場合)。また、何らかの理由で動作が異なる環境を設定するために新しいコンピュータで実行される設定スクリプトもあります。
設定スクリプトが終了すると、次のようになります。
# read .profile
source "$USERDIR/.profile"
私のホームディレクトリを指します$USERDIR
。.profile
このスクリプトが実行されたときに「.profile sourced」をエコーし、スクリプトが完了すると印刷するため、正しくソースが提供されることがわかります。
ただし(このインストールファイルから起動した場合)は.bashrc
読み込まれません。タイプするだけでうまく動作するので、なぜそうなのかわかりません。.profile
.profile
source .profile
bash
.bashrc
私のrcファイルのエコーラインは、.profile
この設定スクリプトではなく、直接インポートしたときにのみエコーされるため、実行されないことがわかります。.bashrc
スクリプトをインポートしようとすると、if [ -f ~/.bashrc ]
.profileと同時に生成されたため、スクリプトが存在します(したがって実行する必要があります)。
答え1
段階的に。に追加.profile
# source bashrc if it exists
if [ -f ~/.bashrc ]; then
echo ".profile is sourcing " ~/.bashrc
source ~/.bashrc
fi
その後、bashをlogin:で呼び出すだけでbash -l
十分です。
.profile is sourcing /home/user/.bashrc
次の行が印刷されましたか?
その場合、問題は次のとおりです。
- 次のファイルが存在しますか? ~/.bash_profile, ~/.bash_login
- このオプションでbashが呼び出されますか
--noprofile
? - または、設定スクリプトを使用します。
そうでない場合、問題は.profile
およびまたはにあります.bashrc
。
- ユーザーディレクトリとして〜の代わりに$ HOMEを使用する必要があるかもしれません。
対話式に実行されていないときに実行を防ぐbashrc行がある可能性があります。
# If not running interactively, don't do anything [ -z "$PS1" ] && return
答え2
$USERDIR
私のホームディレクトリを指します。
正確にどこを指していますか$HOME
? Bashでは、~
常に任意のポイントに拡張してください$HOME
。正しく設定されていないためにできない場合は、source ~/.profile
実行できません。$HOME
$USERDIR/.profile
source ~/.bashrc