which命令输出一段函数

命令行输入which gem时,会输出一串函数:

➜  ~ which gem
gem () {
    \typeset result
    (
        \typeset rvmrc
        rvm_rvmrc_files=("/etc/rvmrc" "$HOME/.rvmrc")
        if [[ -n "${rvm_prefix:-}" ]] && ! [[ "$HOME/.rvmrc" -ef "${rvm_prefix}/.rvmrc" ]]
        then
            rvm_rvmrc_files+=("${rvm_prefix}/.rvmrc")
        fi
        for rvmrc in "${rvm_rvmrc_files[@]}"
        do
            [[ -s "${rvmrc}" ]] && source "${rvmrc}" || true
        done
        unset rvm_rvmrc_files
        command gem "$@"
    ) || result=$?
    hash -r
    return ${result:-0}
}

这是由于使用zsh导致的。
使用下面的命令即可输出正确位置:

➜  ~ which -p gem
/Users/.rvm/rubies/ruby-3.0.2/bin/gem

参考:https://stackoverflow.com/questions/7719757/zsh-which-rvm-or-which-gem-returns-the-function-contents-instead-of-the-path

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容