题
当我 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
。这对我有用。
不隶属于 StackOverflow