我想设置 $PATH 的指定路径,
我把它写到顶部.bashrc
$ cat ~/.bashrc
export PATH=/usr/local/opt/coreutils/libexec/gnubin:$PATH
并激活它
$ source ~/.bashrc
有用
/usr/local/opt/coreutils/libexec/gnubin:/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin:/Users/me/.rvm/bin:/Users/me/.rvm/bin:/Users/me/.rvm/bin
尽管如此,当我打开一个新终端时,它就消失了。
$ echo $PATH
/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin
作为测试,我关闭了所有终端并重新启动
$ echo $PATH
/Users/me/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/me/.rvm/bin:/usr/local/mysql/bin
路径/usr/local/opt/coreutils/libexec/gnubin
不在那里。
我检查了我的操作:
1. put desired path to the top
2. export it
3. source to activate it.
我的操作出了什么问题?
答案1
macOS(我相信您正在使用)上的终端应用程序(以及 iTerm)启动了一个登录默认为外壳。当bash
作为登录 shell 启动时,它会读取您的~/.bash_profile
文件,但不会读取~/.bashrc
.
您可以在终端的首选项中更改终端启动 shell 的方式,也可以通过添加以下内容(可能在文件末尾)将~/.bash_profile
源文件设为文件:~/.bashrc
~/.bash_profile
if [[ "$-" == *i* ]] && [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
~/.bashrc
如果该文件是交互式 shell 并且存在的话,这将使登录 shell 也读取该文件~/.bashrc
。
作为替代方案,您显然可以直接将修改添加到PATH
in 中~/.bash_profile
。我相信 macOS 不会~/.bashrc
在用户的主目录中安装默认文件。
有关的: