Shell没有选择正确的路径来运行drush

时间:2014-05-21 17:14:10

标签: sh homebrew drush

我已经/usr/local/bin匆匆忙忙。正在运行which drush会返回/usr/local/bin/drush。但是,正在运行drush会显示" -bash: /usr/bin/drush: No such file or directory"。正常运行/usr/local/bin/drush

我的$ PATH是/usr/local/bin:/usr/local/mysql/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin

[在编辑中添加]在我遇到此问题之前,我在/usr/bin/drush删除了 的脚本副本。它没有正确构建。

究竟是什么导致了这个问题?我不想每次都输入/usr/local/bin/drush;这就是我/usr/local/bin$PATH的原因。

1 个答案:

答案 0 :(得分:3)

您是否在此shell中运行drush,然后将其从/usr/bin移至/usr/local/bin?如果是这样,hash命令将显示shell已记住/usr/bin位置中的命令,并且会在没有重新检查的情况下将其设置为存在。运行hash -r将清除此列表。

工作示例:

$ echo >/usr/bin/hello 'echo hello'
$ chmod +x /usr/bin/hello
$ hash
hits    command
   1    /bin/chmod
$ hello
hello
$ hash
hits    command
   1    /bin/chmod
   1    /usr/bin/hello
$ which hello
/usr/bin/hello
$ mv /usr/bin/hello /usr/local/bin/
$ hello
bash: /usr/bin/hello: No such file or directory
$ hash
hits    command
   1    /usr/bin/which
   1    /bin/chmod
   1    /bin/mv
   2    /usr/bin/hello
$ which hello
/usr/local/bin/hello
$ hash -r
$ hash
hash: hash table empty
$ hello
hello
$ hash
hits    command
   1    /usr/local/bin/hello