Por que o gnu mostra um script em vez de um caminho de arquivo?

0

Eu encontrei a seguinte saída enquanto usava which

[user@localhost ~]$ 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}
}

Eu já vi which mostrar aliases, mas não bash scripts antes.

Esse script obviamente veio do RVM, mas como ele entrou no which e onde posso encontrá-lo no meu sistema de arquivos? Não está em .bashrc .

    
por Qwertie 31.01.2018 / 01:34

1 resposta

0

Tente isto:

shopt -s extdebug
declare -F gem

De man builtins :

extdebug
    If set, behavior intended for use by debuggers is enabled:
    1.     The -F option to the declare builtin displays the source file
           name and line number corresponding to each function name sup‐
           plied as an argument.
    
por 02.02.2018 / 01:07

Tags