.bashrc в ssh login

Когда я передаю 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 делают то, что и как вы должны использовать/настраивать, читайте это:

Ответ 4

Если решение ayman не работает, попробуйте называть ваш файл .profile вместо .bash_profile. Это сработало для меня.