localizar arquivo contendo uma função

1

Eu gostaria de saber uma maneira de obter o arquivo que contém uma função que pode ser acessada porque foi originada no shell. Para Bash e ZSH.

Por exemplo, quando eu quero descobrir a origem da função git_showhidden , ela imprime a função, mas não o arquivo.

$ which git_showhidden
git_showhidden () {
    files=($(git ls-files -v | grep "^[[:lower:]]" | sed 's/h //'))
    echo "${files[@]}"
}

Claro que eu poderia procurar pela string, mas isso é chato e lento. which , whence e type não fornecem o que eu preciso.

    
por d-nnis 15.04.2017 / 00:40

1 resposta

0

Apenas parte de uma resposta, mas para zsh , type faz exatamente o que você precisa.

Exemplo:

$ type extract
extract is a shell function from /usr/share/oh-my-zsh//plugins/extract/extract.plugin.zsh

Você pode canalizar sua saída para sed "s/.*is a shell function from //g" para obter apenas o caminho (isso pode ter alguns problemas, mas deve funcionar para a maior parte da saída).

    
por 05.05.2017 / 13:37

Tags