Когда я передаю ssh в мой Ubuntu-ящик с Hardy 8.04, переменные среды в моем .bashrc не установлены.
Если я делаю источник .bashrc, переменные правильно установлены, и все хорошо.
Почему .bashrc не запускается при входе в систему?
Ответ 1
.bashrc не используется при регистрации в SSH. Вам нужно указать его в .bash_profile следующим образом:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
Ответ 2
У меня была такая же ситуация, как Хобхаус. Я хотел использовать команду
ssh myhost.com 'some_command'
и 'some_command' существует в '/var/some_location'
поэтому я попытался добавить '/var/some_location' в среду PATH
путем редактирования '$ HOME/.bashrc'
но это не сработало. потому что по умолчанию .bashrc(Ubuntu 10.4 LTS) предотвращает использование кода, как показано ниже
# If not running interactively, don't do anything
[ -z "$PS1" ] && return
so Если вы хотите изменить среду для оболочки ssh без входа.
вы должны добавить код выше этой строки.
Ответ 3
Для отличного ресурса о том, как работает bash, какие dotfiles делают то, что и как вы должны использовать/настраивать, читайте это: