Shell не выбирает правильный путь для запуска 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.


person meustrus    schedule 21.05.2014    source источник


Ответы (1)


Вы раньше запускали drush в этой оболочке, а затем переместили ее с /usr/bin на /usr/local/bin? Если это так, команда hash покажет, что оболочка запомнила команду в месте /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
person Stuart Caie    schedule 21.05.2014
comment
Думаю, это может быть моей проблемой, но hash -d показывает мне только список. Кажется, это ничего не проясняет. - person meustrus; 21.05.2014
comment
извини, я имел в виду hash -r - person Stuart Caie; 21.05.2014
comment
Отлично, сработало! То же самое и с открытием другого терминала в этом отношении, что я бы сделал раньше, если бы не был полностью сбит с толку возникшей у меня проблемой. - person meustrus; 21.05.2014
comment
Для записи, hash -r drush перефразирует только эту команду, что, очевидно, является более легкой операцией. - person tripleee; 23.05.2014