2009-04-22 5 views
15

Ich bemerkte, dass die Bash Shell Befehlszeilenschalter für Ihren Befehl vorschlagen kann.Überraschung! die Shell schlägt Befehlszeilenschalter vor

Geben Sie einfach Ihren Befehl ein, einen Gedankenstrich (-) und geben Sie den Tab ein. Die Shell zeigt Ihnen verfügbare Schalter an.

Zum Beispiel versuchen:

[email protected]:~$ java - 

und die Tabulatortaste drücken - Überraschung!

Screenshot

Die Frage ist:

Wie ich mit dieser Funktion eine Schnittstelle haben. Das heißt, wenn ich ein Programm schreibe, das von der Konsole aus ausgeführt werden soll, wie lautet die API, um der Shell mitzuteilen, welche Switches verfügbar sind?

+1

Hm ... meine Bash scheint diese Funktion zu fehlen. Muss ich es irgendwie aktivieren? – Burkhard

+0

Es funktioniert nur, wenn ein Befehl eingerichtet ist, um es in /etc/bash_completion.d zu verwenden (siehe MrX Antwort unten.) Ich habe es auch versucht, mit ls, und es hat nicht funktioniert, aber in diesem Verzeichnis sehe ich das yast2 hat ein 100 Zeilen Vervollständigungsscript auf einem unserer Systeme. Lotta arbeite daran, das aufzustellen! Könnte nett sein, wenn Sie ein Unix-Tool schreiben, das viele Leute verwenden werden, aber nicht für persönliche Arbeit. Verwenden Sie stattdessen --help mit gnu-Dienstprogrammen. –

Antwort

6

See:

$ man bash 

Insbesondere berechtigt den Abschnitt "Readline-" und Abschnitt "Programmierbare Fertigstellung"

5

FYI: In Ubuntu und/oder Debian die Skripte sind in /etc/bash_completion.d/

Verwandte Themen