Ich habe mein benutzerdefiniertes Konsolendienstprogramm cooltool
mit einer Liste von Optionen
fooOption
barOption
Was kann ich tun, um die Optionen durch Drücken der tab
Taste automatisch zu vervollständigen ?
Ich meine, der Benutzer hat getippt
$ ./cooltool foo_
dann gedrückt tab
. Und dann
$ ./cooltool fooOption _
erschien.
Antworten:
Schreiben Sie ein Bash-Abschlussskript für
cooltool
. Das Bash-Completion- Paket enthält Skripte für viele gängige Programme, die Sie als Beispiele verwenden können.quelle
Am einfachsten ist es, Ihrer .bashrc-Datei Folgendes hinzuzufügen.
Bei jeder Eingabe
cooltool f[TAB][TAB]
wird die_cooltool()
Funktion aufgerufen. Es wird herausgefunden, was Ihr aktuelles Teilwort ist undcompgen
welche Optionen übereinstimmen. Diese werden in einem aufgerufenen Array gespeichert,COMPREPLY
das dann angezeigt wird. Schauen Sieman complete
undman compgen
für Details.Ein nettes Tutorial finden Sie hier: Schreiben Sie Ihre eigene Bash-Vervollständigungsfunktion
quelle
Vielleicht möchten Sie sich das Verzeichnis /etc/bash_completion.d auf Ihrem System genauer ansehen.
Auch sollten Sie diese Einführung lesen . Der zweite Teil der Einführung ist derjenige, den Sie brauchen.
quelle
Hier ist der Code, der zur Vervollständigung der Git-Bash verwendet wird
quelle
Zusätzlich zur Antwort von dogbane können Sie auch Folgendes tun:
wenn Sie einfach eine Liste von Wörtern ab dem Anfang der Zeichenfolge abgleichen möchten. Es sieht so aus, als ob Vollständigkeit und Kompatibilität die meisten Optionen teilen. Ich habe nur bei den Befehlen, die ich verwende, eine Übereinstimmung mit dem Zeichenfolgenanfang festgestellt. Daher fand ich es gut, dass Sie in der _cooltool-Funktion andere Dinge tun können, wie z.
an einer beliebigen Stelle im Optionsnamen übereinstimmen.
quelle