Exibir o corpo da função no Bash

14

Eu configurei várias funções no meu .bashrcarquivo. Gostaria apenas de exibir o código real da função e não executá-lo, para me referir rapidamente a algo.

Existe alguma maneira, poderíamos ver a definição da função?

mtk
fonte

Respostas:

15

A opção declaredo builtin -ffaz isso:

bash-4.2$ declare -f apropos1
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}

Eu uso typepara esse fim, é mais curto para digitar;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}
homem a trabalhar
fonte
6

Você pode usar o typecomando para fazer isso.

type yourfuncimprimirá a função em STDOUT. Como man typediz,

O utilitário de tipo deve indicar como cada argumento seria interpretado se usado como um nome de comando.
jasonwryan
fonte
2
man type? Os componentes internos do shell geralmente não têm página de manual no meu sistema.
manatwork
Atualizei minha resposta com um link. O sistema que eu uso é o Arch Linux.
jasonwryan
1
Obrigado. Parece que o pacote man-pages contém muito mais sobre o Arch.
manatwork
Não há problema: como é uma das páginas man POSIX, eu pensei que iria ser amplamente distribuído ...
jasonwryan
4
help typemostra as informações específicas do Bash.
L0b0 27/12/12
0

para informações de comandos internos, use:

help [-s|-d] COMMAND1 COMMAND2 ....

por exemplo:

help help alias

Para informações sobre todos eles, digite, por exemplo:

help -s '' 
Robert
fonte