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?

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

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.

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 '' 
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.