Итак, я использую новую установку 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 можно сделать это с помощью Запустить команду как оболочку входа.