设置 .bash_profile 和 .bashrc 以进行本地和远程访问

设置 .bash_profile 和 .bashrc 以进行本地和远程访问

我注意到,当我在本地 ubuntu 计算机上打开终端时,它会获取源代码.bashrc,但是当我通过 ssh 连接时,它会获取源代码.bash_profile。我在.bashrc源代码中添加了一行.bash_profile,以便在本地工作时拥有两个文件源。我希望在远程访问机器时有相同的行为。当然,如果我只是输入,.bashrc.bash_profile就会陷入无限循环。设置这个的正确方法是什么?

答案1

您可以使用命令shopt login_shell。如果 shell 是非登录 shell,那么它将打印login_shell off,如果它是登录 shell,那么它将打印login_shell on

.bash_profile每当以交互登录模式启动或通过 ssh 访问时,都会由 bash 获取。所以你可以在.bash_profilelike中添加一个 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

相关内容