因此,我正在使用全新安装的 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 shell 时,它显然没有被读取,我的 $PATH 没有 /usr/lib64/openmpi/bin 路径,当我尝试时 FOO 不存在echo $FOO
.bashrc 读取得很好,如果我这样做,source ~/.bash_profile
FOO 就会被创建,并且我的 $PATH 也会被正确编辑,但它不会自行运行 .bash_profile,所以如果我能得到任何帮助那就太好了。
答案1
您能描述一下如何测试这两个文件吗?您尝试过登录还是非登录 shell?区别如下:
当您登录系统并看到命令行提示符时,它是一个登录 shell,它会按顺序执行这些文件:
/etc/profile
~/.bash_profile
~/.bashrc
/etc/bashrc
非登录 shell 将仅按顺序执行这两个文件:
/etc/bashrc
~/.bashrc
如果您只是简单地通过“bash”启动 bash shell,则它是一个非登录 shell,不会调用 ~/.bash_profile。如果您希望即使在运行非登录 shell 时也能设置变量,则应将它们放入~/.bashrc
。
答案2
这是普通的,.bash_profile 是为登录 shell 而编写的,.bashrc 是为交互式非登录 shell 而编写的。在 CentOS 中,.bash_profile 的顶部通常包含:
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
因此你可以将东西放入.bashrc 中。
当你打开新窗口时,Mac OS X 终端会读取 .bash_profile。gnome-terminal 可以使用以下命令执行此操作:作为登录 shell 运行命令。