Назад | Перейти на главную страницу

.bash_profile не читается

Итак, я использую новую установку CentOS 6.3, и я пытался добавить что-то в свой путь для OpenMPI, поэтому я отредактировал свой файл .bash_profile, чтобы прочитать:

FOO='test'
export FOO

# Add support for MPI
PATH=$PATH:/usr/lib64/openmpi/bin

# User specific environment and startup programs

PATH=$PATH:$HOME/bin




export PATH

Что, по-видимому, не читается, когда я запускаю оболочку bash, мой $ PATH не имеет пути / usr / lib64 / openmpi / bin, а FOO не существует, когда я пытаюсь echo $FOO

.bashrc читается нормально, и если я это сделаю source ~/.bash_profile FOO создается, а мой $ PATH редактируется правильно, но он не будет запускать .bash_profile сам по себе, поэтому, если бы я мог получить какую-либо помощь, было бы здорово.

Не могли бы вы описать, как вы тестируете эти 2 файла? Вы пробовали входить или не входить в оболочку? Вот разница:

Когда вы входите в систему и видите приглашение командной строки, это оболочка входа в систему, которая выполняет эти файлы в следующем порядке:

/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc

Оболочка без входа в систему будет выполнять только два файла по порядку:

/etc/bashrc
~/.bashrc

Если вы просто запустите оболочку bash с помощью «bash», это будет оболочка без входа в систему и ~ / .bash_profile не будет вызван. Если вы ожидаете, что переменные будут установлены даже при запуске оболочки без входа в систему, вы должны поместить их в ~/.bashrc.

Это нормальный, .bash_profile используется для оболочек входа в систему, .bashrc - для интерактивных оболочек без входа в систему. В CentOS в верхней части .bash_profile обычно есть:

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

Так что вы можете помещать вещи в .bashrc.

Терминал Mac OS X читает .bash_profile, когда вы открываете новое окно. gnome-terminal можно сделать это с помощью Запустить команду как оболочку входа.