1

只有当我在.bashrc 或 .bash_profile 中添加OS X Mountain Lion了一些内容时,该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吗?我认为这相当于打开一个新的终端窗口(它确实返回了我期望的结果 - 即没有桌面路径)

4

1 回答 1

1

当您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
于 2013-10-23T11:52:59.177 回答