我注意到,当我在本地 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_profile
like中添加一个 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