GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich eine benutzerdefinierte Autovervollständigung für bestimmte Befehle angeben?

Gibt es eine Möglichkeit, dass bash genau weiß, was angezeigt werden soll, wenn Sie doppelt tabulatoren? Zum Beispiel habe ich ein Python-Skript scpy was ein paar Argumente erfordert. Zum Beispiel wie apt-get , wenn du doppelt tab drückst gibt es dir

autoclean        build-dep        clean            dselect-upgrade  purge            source           upgrade
autoremove       check            dist-upgrade     install          remove           update  

Gibt es eine Möglichkeit, dies für Ihre eigenen Skripte/Programme zu tun? Muss ich mein Python-Skript in ein Bash-Skript einschließen?

Akzeptierte Antwort:

Der einfachste Weg, dies zu tun, besteht darin, ein Shell-Skript in /etc/bash_completion.d/ einzufügen . Die Grundstruktur dieser Datei ist eine einfache Funktion, die die Vervollständigung und dann den Aufruf von complete durchführt das ist eine eingebaute Bash. Anstatt ins Detail zu gehen, wie man complete verwendet , schlage ich vor, dass Sie eine Einführung in die Bash-Vervollständigung lesen. Teil 1 behandelt die Grundlagen und Teil 2 erläutert, wie Sie beim Schreiben eines Abschlussskripts vorgehen würden.

Eine ausführlichere Beschreibung der Bash-Vervollständigung finden Sie im Abschnitt „Programmierbare Vervollständigung“ von man bash (Sie können „/Programmable Completion“ eingeben und dann ein paar Mal „n“ drücken, um schnell dorthin zu gelangen. Oder, wenn Sie Glück haben, „g 2140 RETURN“).


Linux
  1. Wie erhalte ich die Bash-Vervollständigung für Befehlsaliase?

  2. Wie ändere ich die Cron-Shell (sh in Bash)?

  3. So richten Sie passwortloses Sudo für einen bestimmten Benutzer ein

  4. So deaktivieren Sie einen bestimmten Befehl für einen bestimmten Benutzer in Linux

  5. Wie erstelle ich benutzerdefinierte Befehle in Unix/Linux?

Bash-Skripting-Tutorial für Anfänger:Was es ist, wie man eines schreibt und Skriptbeispiele

So verwenden Sie benutzerdefinierte Befehle in LibreOffice

So führen Sie einen Befehl für eine bestimmte Zeit in Linux aus

So korrigieren Sie einfach falsch geschriebene Bash-Befehle in Linux

Wie man eine Gruppe von Befehlen in Bash ausschaltet

So legen Sie den Pfad für sudo-Befehle fest