jedermann. Ich bin ein bash / zsh-Benutzer (Linux). Ich möchte die folgenden Dinge realisieren.
Geben Sie zuerst den Befehl in die bash / zsh-Shell ein, wie zum Beispiel:
$ wundervoll:
Tatsächlich gibt es kein Programm namens "wonderful:". Ich möchte mit der Eingabezeichenfolge eine Funktion (oder ein Programm) behandeln, bevor die Shell den Befehl ausführt . Genauer gesagt, wenn die Befehlseingabe "wunderbar:" ist, liefert die Shell die Eingabe an meine Funktion / mein Programm, und das ist alles, was die Shell tut.
Gibt es eine Möglichkeit, so etwas zu realisieren? Entweder bash oder zsh ist in Ordnung. Vielen Dank für Ihre Aufmerksamkeit!
cat
zu Ihrem Programm, was Sie wollen?Antworten:
Sie können eine Funktion definieren, die aufgerufen
command_not_found_handle
wird, wenn ein eingegebener Befehl nicht gefunden wird. Dies wird in Bash 4.0 oder höher unterstützt. die äquivalentezsh
Funktion ist die gleichnamigecommand_not_found_handler
.Ein einfaches Beispiel, das einen Rechtschreibfehler abfängt
printf
, andere unbekannte Befehle jedoch als unbekannt zurücklässt.quelle
command_not_found_handle
. Ohne sie, führt nichts , weil es keinen Befehl gefunden wurde , um auszuführen. Die Funktion nimmt die ungültige Befehlszeile als Eingabe und ermöglicht es Ihnen, sie auseinanderzunehmen und die Argumente an einen anderen bekannten Befehl zu übergeben.Vielleicht brauchen Sie einen Bash-Alias . Mit einem Alias-Erlaubnis können Sie "wunderbar" definieren, als wäre es ein Befehl. Siehe das Tutorial . Sie können beispielsweise Folgendes hinzufügen:
in Ihre ~ / .bashrc-Datei.
In Ihrem Fall können Sie einem Skript, das die Parameter oder Eingaben verarbeitet, einen Alias "wunderbar" geben und dann einen anderen Befehl aufrufen.
quelle