1

我已经赶进去了/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.

4

1 回答 1

3

drush之前是否在此 shell 中运行过,然后将其从 移动/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
于 2014-05-21T17:18:12.370 回答