Zeigen Sie den Funktionskörper in Bash an

13

Ich habe mehrere Funktionen in meiner .bashrcDatei eingerichtet. Ich möchte nur den aktuellen Code der Funktion anzeigen und nicht ausführen, um schnell auf etwas zu verweisen.

Gibt es eine Möglichkeit, die Funktionsdefinition zu sehen?

mtk
quelle

Antworten:

14

Die declareeingebaute -fOption bewirkt Folgendes :

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

Ich benutze typefür diesen Zweck, es ist kürzer zu tippen;)

bash-4.2$ type apropos1
apropos1 is a function
apropos1 () 
{ 
    apropos "$@" | grep ' (1.*) '
}
Mann bei der Arbeit
quelle
6

Sie können den typeBefehl verwenden, um dies zu tun.

type yourfuncdruckt die Funktion auf STDOUT. Wie man typegesagt,

Das Dienstprogramm type gibt an, wie jedes Argument interpretiert wird, wenn es als Befehlsname verwendet wird.
jasonwryan
quelle
2
man type? Shell-Builtins haben normalerweise keine Manpage auf meinem System.
Handarbeit
Ich habe meine Antwort mit einem Link aktualisiert. Das System, das ich benutze, ist Arch Linux.
Jasonwryan
1
Vielen Dank. Scheint, dass das Man-Pages- Paket viel mehr über Arch enthält.
manatwork
Kein Problem: Da es sich um eine der POSIX-Manpages handelt, dachte ich, dass sie weit verbreitet ist ...
jasonwryan
4
help typeZeigt die Bash-spezifischen Informationen an.
l0b0
0

Für Informationen zu eingebauten Befehlen verwenden Sie:

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

beispielsweise:

help help alias

Für Informationen zu allen von ihnen geben Sie zum Beispiel Folgendes ein:

help -s '' 
Robert
quelle