Mostrar el cuerpo de la función en Bash

14

He configurado varias funciones en mi .bashrcarchivo. Me gustaría mostrar el código real de la función y no ejecutarlo, para referirme rápidamente a algo.

¿Hay alguna manera de que podamos ver la definición de la función?

mtk
fuente

Respuestas:

15

La opción declareintegrada -fhace eso:

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

Yo uso typepara ese propósito, es más corto de escribir;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}
hombre trabajando
fuente
6

Puedes usar el typecomando para hacer esto.

type yourfuncimprimirá la función en STDOUT. Como man typedice,

La utilidad de tipo indicará cómo se interpretaría cada argumento si se usara como un nombre de comando.
jasonwryan
fuente
2
man type? Los componentes integrados de Shell generalmente no tienen página de manual en mi sistema.
manatwork
He actualizado mi respuesta con un enlace. El sistema que uso es Arch Linux.
jasonwryan
1
Gracias. Parece que el paquete de páginas de manual contiene mucho más sobre Arch.
manatwork
No hay problema: ya que es una de las páginas del manual POSIX, pensé que sería ampliamente distribuida ...
jasonwryan
44
help typemuestra la información específica de Bash.
l0b0
0

para el uso de información de comandos incorporados:

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

por ejemplo:

help help alias

Para obtener información sobre todos ellos, escriba, por ejemplo:

help -s '' 
Robert
fuente