Zsh`哪个rvm`或`哪个gem`返回函数内容而不是路径

use*_*148 8 zsh rvm

我以前从未遇到过这个问题,但是出于某些原因我在ZSH时输入

which gem
Run Code Online (Sandbox Code Playgroud)

要么

which rvm
Run Code Online (Sandbox Code Playgroud)

我得到了功能内容:

gem () {
local result
command gem "$@"
result="$?" 
hash -r
return $result
}
Run Code Online (Sandbox Code Playgroud)

而不是它的路径.对于我的生活,我无法弄清楚为什么会这样.

如果我切换到bash我没有这些问题.

Gil*_*il' 8

这是zsh的正常行为.该which内置相当于whence -c,这显示了函数的定义.使用whence,可能包含不包含的选项组合,-f或者-c如果您不希望这样.例如whence -w gem将显示gem: function.如果您只想搜索外部可执行文件(而不是别名,内置函数,保留字或函数),请使用whence -v.

  • 谢谢.这肯定为我解决了问题.我发现使用`-p`选项和`which`给了我期待的结果.将`-p`与`whence`一起使用似乎也是如此. (3认同)