ローカルおよびリモートアクセス用の.bash_profileと.bashrcの設定

ローカルおよびリモートアクセス用の.bash_profileと.bashrcの設定

私のローカルUbuntuコンピュータで端末を開くとソースコードがインポートされますが、.bashrcSSH経由で接続するとソースコードがインポートされることがわかりました.bash_profile。ローカルで作業するときに2つのファイルソースを持つように.bashrcソースコードに1行を追加しました。.bash_profileリモートでコンピュータにアクセスするときと同じ動作が必要です。もちろん、単に入力すると無限ループに陥ります.bashrc.bash_profileこれを設定する正しい方法は何ですか?

答え1

コマンドを使用できますshopt login_shell。シェルが非ログインシェルの場合は印刷されlogin_shell off、ログインシェルの場合は印刷されますlogin_shell on

.bash_profile対話型ログインモードで起動するか、SSH経由でアクセスするたびにbashから取得します。したがって、.bash_profile次のようにif条件を追加できます。

if [ "$(shopt login_shell | cut -f2)" = "on" ]
 then
  source .bashrc
fi

.bashrc端末でbashを起動するたびにソースコードを取得するので、if条件を追加できます。.bashrc

if [ "$(shopt login_shell | cut -f2)" = "off" ]
then
 source .bash_profile
fi

関連情報