Команды из ~/.bashrc не срабатывают при логине

Товарищи,
Использую OpenIndiana, шелл – bash.
Попытался добавить путь до нужных мне бинарников в переменную $PATH дописыванием в ~/.bashrc следующей строчки:

export PATH=/usr/gnu/bin:/usr/bin:/usr/sbin:/sbin:/opt/csw/bin:/opt/csw/gcc4

По идее при logoff и последующем login $PATH уже должна была бы иметь указанный выше вид, но нет – никаких изменений не происходит.

В чём может быть проблема? Или это фича? :)

Заранее спасибо за ответы.
16 февраля в 03:00
appplemac 16,1

отсортировано по дате по оценке
ответы (3)

+2
tyzhnenko #
попробуйте добавить в ~/.bash_profile

if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi
вроде заработало, спасибо! appplemac, 16 февраля в 03:19
+6
alekciy #
Это фича и о ней описано в мане linux.die.net/man/1/bash

Смысл в том, что ~/.bash_profile читается при login, а ~/.bashrc при интерактивном старте оболочки. Проверить очень просто. Пишем в ~/.bash_profile строку echo 'bash_profile', а в ~/.bashrc echo 'bashrc'. Теперь логинимся и запускаем еще одну копить оболочки (т.е. запуск bash без login-а):
bash_profile
[user@server ~]$ bash
bashrc
[user@server ~]$ exit
[user@server ~]$
+2
smbd #
Вообще, обычно принято ставить PATH=$PATH:<ваши_пути>.
И, есть небольшое мнение, что такие вещи лучше хранить в отдельном файле, аля ~/.profile, и считывать его, а не напрямую прописывать в bash_*. Зачем — чтобы в других шеллах (ну вдруг они вам понадобятся) считывать ~/.profile, а не копипастить env-переменные в их .rc-фалйы :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.