Tab-Vervollständigung in Bash zur Definition von Bash-Funktionen?

Ich habe mehrere Funktionen in meinem ~/.bash_profileNamen pg_dump_[dbname]_[envname], die ich gerne eingeben möchte

type pg_dump [tab]

(oder einen anderen Befehl außer type ) für bash, um die Definition dieser Funktion anzuzeigen. Ist dies ein eingebautes für OSX , dessen Verwendung ich vermisse, oder gibt es einen Drittanbieter, der dies tut?

Soweit ich das überblicken kann, funktioniert das bei mir out of the box. Welche Bash-Version verwendest du?
@nohillside Ich habe die Frage durcheinander gebracht: Ich hatte vorgehabt, nach der Definition der Funktion zu fragen. Der Titel der Frage und der Inhalt wurden aktualisiert. Mein Fehler.
Sie können eine automatische Vervollständigung hinzufügen, indem Sie hier das Beispiel COMPREPLY, COMP_WORDS und COMP_CWORD verwenden .

Antworten (1)

Wenn Sie ksh/bash/zsh verwenden, möchten Sie:

$ typeset -f name_of_the_function

Dadurch wird die Definition angezeigt.

Meine Frage betrifft die automatische Auflistung der Funktionsnamen. Ja typeset -fkann die Definition zeigen – aber das tut es typeauch selbst: aber es scheint, dass keiner die Tab-Vervollständigung verwenden kann, um die verfügbaren Funktionen zu finden, die einem Präfix entsprechen
Ja, typezeigt die Funktionsdefinition, aber nur in bash. Die Shell sollte die definierten Funktionen bereits ausführen, wenn sie zum ersten Mal auf der Befehlszeile angezeigt werden. Wenn Sie erwarten, dass sie als Argument für einen anderen Befehl vervollständigt werden, kshtun Sie dies nicht. Bashoder zsh, Sie müssten Ihre eigene Vervollständigungslogik schreiben, um zu ändern, was die Shell versucht, gegen den ersten Eintrag in der Befehlszeile zu vervollständigen.
ok, für die Info positiv gestimmt, da sie für andere Shells gilt (nützlich für andere Leute)