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?

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.*) '
}

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.

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 '' 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.