![设置 .bash_profile 和 .bashrc 以进行本地和远程访问](https://linux22.com/image/148077/%E8%AE%BE%E7%BD%AE%20.bash_profile%20%E5%92%8C%20.bashrc%20%E4%BB%A5%E8%BF%9B%E8%A1%8C%E6%9C%AC%E5%9C%B0%E5%92%8C%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE.png)
我注意到,当我在本地 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