/bin/bash shell 中未加载 bashrc

int*_*ius 7 ssh bashrc arch-linux

当我通过 ssh 进入服务器 (4.3.3-2-ARCH) 时,我的 .bashrc 没有加载(但是,我可以通过采购它来手动加载它)。

我的主文件夹中没有任何其他文件,例如 .profile。外壳也正确

$ echo $SHELL
/bin/bash
Run Code Online (Sandbox Code Playgroud)

当我使用 登录时ssh -t myserver /bin/bash,我的 .bashrc 已正确加载。

在 SSH 详细模式下,我确实看到 /etc/bash.bashrc 和 ~/.bashrc 是使用最后一个命令加载的。使用默认的 ssh 命令时,它们都没有被加载...

使用默认 ssh 命令时,我应该配置什么来加载 .bashrc(和 /etc/bash.bashrc)?

use*_*517 18

~/.bashrc文件是为交互式非登录 shell 加载的,这就是为什么/bin/bash从 ssh运行可以按预期工作的原因。

对于登录外壳(以及其他) ~/.bash_profile 被读取。通常你~/.bash_profile包含类似的东西

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi
Run Code Online (Sandbox Code Playgroud)

~/.bashrc如果您的外壳是登录外壳,则可确保加载。

如果您~/.bash_profile包含上述内容并且~/.bashrc没有被加载,您可以set -x像往常一样使用调试脚本。

  • https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html (2认同)