Wenn ich Befehle in Bash verwende, mag ich die Option mit zwei Registerkarten, um die verfügbaren Befehle anzuzeigen. Einige Befehle haben mehr mögliche Übereinstimmungen als andere:
Screenshot einer Tab-Vervollständigung http://img13.imageshack.us/img13/5541/picturemhy.jpg
Gibt es eine Möglichkeit, die Ausgabe der doppelten Registerkarte an eine beliebige Stelle weiterzuleiten grep
? Ich habe einen verwandten Beitrag gefunden , bin mir aber immer noch nicht sicher, wie ich ihn implementieren soll, um ihn an grep weiterzuleiten.
grep
regulären Ausdruck eintreten ?(y or n or g[rep])
? Ich mag es nicht, pessimistisch zu klingen, aber ich bezweifle, dass dies möglich ist, ohne es dem Bash-Code hinzuzufügen.Antworten:
Für Befehle verwenden Sie
compgen -c
:Diese Ausgabe können Sie einfach durchleiten
grep
.quelle
Basierend auf @ salutis Antwort habe ich ein Skript , das ich genannt
comp
und gespeichert ,~/bin/comp
dass suchtcommands
‘,aliases
undbuiltins
, (Optionsflag-cab
siehe die bash man Eintritt ), mit einem optionalen zweiten Parameter , die, falls vorhanden, Rohre die Ausgabe angrep
und sucht nach der zweiter Parameter.Code:
Persönlich wäre ich auch daran interessiert, einen Weg zu finden, um den letzten Befehl aus dem Shell-Verlauf im Skript zu entfernen (etwas, das damit zusammenhängt
history -d
), damitbash
ich beim Durchsuchen des Verlaufs keinecomp
Einträge finde . Ich weiß, dass ich das auch mit machen kann,HISTIGNORE
aber Linux ist ziemlich mächtig, also muss es auch eine Möglichkeit geben, dies aus der Skriptdatei heraus zu tun - richtig?quelle
Warum nicht finden, wonach Sie suchen?
Beispiel:
Wenn ich Ihren Anwendungsfall kenne, kann ich ein detaillierteres Befehlsbeispiel erstellen.
quelle