.bash_profile 未被读取

.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 shell 时,它显然没有被读取,我的 $PATH 没有 /usr/lib64/openmpi/bin 路径,当我尝试时 FOO 不存在echo $FOO

.bashrc 读取得很好,如果我这样做,source ~/.bash_profileFOO 就会被创建,并且我的 $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 运行命令

相关内容