On OS X Mountain Lion
当{em>在.bashrc或.bash_profile中添加某些内容时,source
命令似乎只会更新我的路径。如果我删除这些文件中的任何一个的路径,然后使用source
进行更新,则删除的路径仍然存在。一个例子......
添加到PATH
.bash_profile
在terminal
> echo $PATH
> "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin"
添加到.bash_profile
export PATH=$PATH:~/Desktop
返回terminal
> source .bash_profile
> echo $PATH
> "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/Users/myname/Desktop"
所以,所有这一切都如预期的那样;我的Desktop
已添加到我的PATH
。现在,我从.bash_profile
删除之前添加的路径后,将此文件留空
> source .bash_profile
> echo $PATH
> "/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin:/Users/myname/Desktop"
正如您所见,“已删除”路径'/Users/myname/Desktop'
仍然存在。我误解了什么
source
呢?我认为这相当于打开一个新的终端窗口(确实会返回
我期待的结果 - 即没有桌面路径)
答案 0 :(得分:0)
当您第一次使用source .bash_profile
时,由于来自export PATH=$PATH:~/Desktop
文件的.bash_profile
行,您的PATH会被重新分配到添加了~/Desktop
目录的旧PATH。
当您第二次使用source .bash_profile
时,不再重新分配PATH,因为您删除了export PATH=$PATH:~/Desktop
行。所以,这次PATH的值保持不变(就像之前一样)。
如果您希望PATH的值返回其初始值,则必须重新启动终端(当前shell)。或者您可以获取/etc/environment
文件:
source /etc/environment