擅长:python、mysql、java
<p>Bash使用<a href="http://www.cyberciti.biz/tips/how-linux-or-unix-understand-which-program-to-run-part-i.html#hashtables" rel="noreferrer">internal hash table</a>优化<code>$PATH</code>查找。当您在前面的<code>$PATH</code>中安装一个与现有程序同名的新程序(在本例中为<code>python</code>)时,Bash并不知道,而是继续使用旧程序。可执行文件<code>which</code>执行完整的<code>$PATH</code>搜索并打印出预期结果。</p>
<p>要解决此问题,请运行命令<code>hash -d python</code>。这将从Bash的哈希表中删除<code>python</code>,并强制它在下次调用时执行完整的<code>$PATH</code>搜索。或者,也可以运行<code>hash -r</code>来完全清除哈希表。</p>
<p><a href="http://www.gnu.org/s/bash/manual/bash.html#Bash-Builtins" rel="noreferrer">^{<cd10>} builtin</a>将告诉您如何解释给定的命令。如果命令是散列的,则意味着Bash将跳过对可执行文件的<code>$PATH</code>搜索。</p>