Afficher le corps de la fonction dans Bash

14

J'ai configuré plusieurs fonctions dans mon .bashrcfichier. Je voudrais simplement afficher le code réel de la fonction et ne pas l'exécuter, pour me référer rapidement à quelque chose.

Y a-t-il un moyen, nous pourrions voir la définition de la fonction?

mtk
la source

Réponses:

15

L' option declareintégrée -ffait cela:

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

J'utilise typeà cet effet, il est plus court à taper;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}
homme au travail
la source
6

Vous pouvez utiliser la typecommande pour ce faire.

type yourfuncimprimera la fonction sur STDOUT. Comme man typedit,

L'utilitaire type doit indiquer comment chaque argument serait interprété s'il était utilisé comme nom de commande.
jasonwryan
la source
2
man type? Les commandes internes de Shell n'ont généralement pas de page de manuel sur mon système.
manatwork
J'ai mis à jour ma réponse avec un lien. Le système que j'utilise est Arch Linux.
jasonwryan
1
Je vous remercie. Il semble que le paquet des pages de manuel contienne beaucoup plus sur Arch.
manatwork
Pas de problème: comme c'est une des pages de manuel POSIX, je pensais qu'elle serait largement diffusée ...
jasonwryan
4
help typeaffiche les informations spécifiques à Bash.
l0b0
0

pour les informations des commandes intégrées, utilisez:

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

par exemple:

help help alias

Pour plus d'informations sur tous ces types, par exemple:

help -s '' 
Robert
la source