当我 ssh 进入运行 Hardy 8.04 的 ubuntu-box 时,.bashrc 中的环境变量未设置。

如果我执行源 .bashrc,则变量设置正确,一切都很好。

为什么 .bashrc 在登录时不运行?

有帮助吗?

解决方案

使用SSH登录时,不会获取

.bashrc 。您需要在 .bash_profile 中获取它,如下所示:

if [ -f ~/.bashrc ]; then
  . ~/.bashrc
fi

其他提示

我有像霍布豪斯这样的情况。我想使用命令

 ssh myhost.com 'some_command'
'/ var / some_location'中存在

和'some_command' 所以我试图在PATH环境中附加'/ var / some_location' 通过编辑'$ HOME / .bashrc'

但那不起作用。因为默认.bashrc(Ubuntu 10.4 LTS)阻止通过下面的代码来源

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

所以如果你想改变ssh非登录shell的环境。 你应该在该行上面添加代码。

有关 bash 调用如何工作、点文件做什么以及如何使用/配置它们的优秀资源,请阅读以下内容:

如果ayman的解决方案不起作用,请尝试命名文件 .profile ,而不是 .bash_profile 。这对我有用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top