所以我使用的是全新安装的CentOS 6.3,而且我正在尝试向OpenMPI的path添加内容,所以我编辑了我的.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 shell时,显然没有被读取,我的$ PATH没有/ usr / lib64 / openmpi / binpath,当我尝试echo $FOO时,FOO不存在
.bashrc被读取的很好,如果我做的source ~/.bash_profile创buildFOO以及我的$ PATH被正确编辑,但它不会运行.bash_profile本身,所以如果我能得到任何帮助,将是伟大的。
你能描述一下你如何testing这两个文件? 你尝试login或非login壳? 以下是区别:
当你login你的系统并看到命令行提示符时,它是一个loginshell,并按顺序执行这些文件:
/etc/profile ~/.bash_profile ~/.bashrc /etc/bashrc
非loginshell只会按顺序执行这两个文件:
/etc/bashrc ~/.bashrc
如果你只是简单地通过“bash”启动一个bash shell,它是一个非loginshell,并且不会调用〜/ .bash_profile。 如果你期望在运行非loginshell的时候设置variables,你应该把它们放到~/.bashrc 。
这是正常的 ,.bash_profile来源于loginshell,.bashrc来源于交互式非loginshell。 在CentOS中,.bash_profile的顶部通常有:
if [ -f ~/.bashrc ]; then . ~/.bashrc fi
所以你可以把东西放在.bashrc中。
当您打开一个新窗口时,Mac OS Xterminal读取.bash_profile。 gnome-terminal可以通过运行命令作为loginshell来完成 。