为什么“导出”不覆盖现有值?

Ric*_*ard 1 path which command variable

为什么不export python=/usr/local/bin/python2.7改变路径python

我对以下内容感到困惑:

$ which python
/usr/bin/python
$ export python=/usr/local/bin/python2.7
$ which python
/usr/bin/python
Run Code Online (Sandbox Code Playgroud)

我正在使用 OSX v10.12。

Ric*_*ann 6

该程序which确定shell命令的路径。

您在第二个语句中所做的是设置一个名为python.

Shell 命令和变量是完全不同的东西。

您可能想使用的是别名。

alias python="/usr/local/bin/python2.7"
Run Code Online (Sandbox Code Playgroud)

请注意,(除了 inzshtcsh,或者如果您which本身是调用 GNU 的 shell 函数which,正如其手册所推荐的那样),which将不会显示别名,而 egtype python会。