Zsh `which rvm` или` which gem` возвращает содержимое функции вместо пути - PullRequest
8 голосов
/ 11 октября 2011

У меня никогда не было этой проблемы с моими другими машинами, но по какой-то причине в ZSH всякий раз, когда я печатаю

which gem

или

which rvm

Я получаю содержимое функции:

gem () {
local result
command gem "$@"
result="$?" 
hash -r
return $result
}

вместо его пути. По жизни я не могу понять, почему это происходит.

Если я переключаюсь на bash, у меня нет этих проблем.

1 Ответ

8 голосов
/ 12 октября 2011

Это нормальное поведение для Zsh. Встроенный which эквивалентен whence -c, который показывает определения функций. Используйте whence, возможно, с комбинацией параметров, которая не включает -f или -c, если вы не хотите этого. Например, whence -w gem будет отображать gem: function. Если вы хотите искать только внешние исполняемые файлы (а не псевдонимы, встроенные модули, зарезервированные слова или функции), используйте whence -v.

...