【问题标题】:Zsh `which rvm` or `which gem` returns the function contents instead of the pathZsh `which rvm` 或 `which gem` 返回函数内容而不是路径
【发布时间】:2011-10-10 23:22:01
【问题描述】:

我以前在其他机器上从来没有遇到过这个问题,但由于某种原因,我每次在 ZSH 中输入

which gem

which rvm

我得到函数内容:

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

而不是它的路径。对于我的一生,我无法弄清楚为什么会发生这种情况。

如果我切换到 bash,我就没有这些问题。

【问题讨论】:

    标签: rvm zsh


    【解决方案1】:

    这是 zsh 的正常行为。内置的which 等价于whence -c,它显示了函数的定义。使用whence,如果您不想要这个,可以使用不包括-f-c 的选项组合。例如whence -w gem 将显示gem: function。如果您只想搜索外部可执行文件(而不是别名、内置、保留字或函数),请使用 whence -v

    【讨论】:

    • 谢谢。这绝对让我明白了。我发现使用-p 选项和which 给了我预期的结果。将-pwhence 一起使用似乎也是如此。
    猜你喜欢
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 2019-02-06
    相关资源
    最近更新 更多