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?

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

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.

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 '' 
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.