Gibt es einen Tippfehler für Bash?

8

Ich möchte, dass sich etwas in den Fehler "Befehl nicht gefunden" bei Bash einfügt und eine nützliche Lösung anbietet.

Zum Beispiel:

grep-C3  error
bash: grep-C3: command not found

Es wäre schön, wenn es heißen würde:

Did you mean: grep -C3 error (Y/n)

Ich habe gesehen, dass Leute häufige Tippfehler in das Skript .bash_profile aufgenommen haben, wie 'alias gerp = grep', aber ich glaube, jemand hat wahrscheinlich eine allgemeine Erweiterung für bash geschrieben, um solche Probleme zu beheben.

Hat jemand von einer solchen Erweiterung gehört?

Brianegge
quelle

Antworten:

4

Ich kenne keinen allgemeinen Zweck, aber es gibt einen für Verzeichnisnamen:

$ shopt -s cdspell
$ cd /usr/ibn
/usr/bin
$ pwd
/usr/bin
$ cd /usr/shar/doc
/usr/share/doc

Dies ist aus der Manpage für Bash:

Wenn die Suche nicht erfolgreich ist, sucht die Shell nach einer definierten Shell 
Funktion mit dem Namen command_not_found_handle. Wenn diese Funktion existiert, ist es
Wird mit dem ursprünglichen Befehl und den Argumenten des ursprünglichen Befehls aufgerufen  
als seine Argumente

Es könnte möglich sein, damit zu tun, was Sie wollen, aber der Code wäre eine ziemliche Herausforderung. Übrigens verwendet Ubuntu dies beispielsweise, um Pakete anzuzeigen, die den Befehl enthalten, der nicht mit Installationsanweisungen gefunden wurde (apt-get).

Bis auf weiteres angehalten.
quelle
2

Sieht aus wie shopt wäre ein guter Anfang.

Außerdem scheint in zsh eine Tippfehlerkorrektur integriert zu sein.

Matthew Talbert
quelle
Der Link zu "shopt" sieht von hier aus wie eine leere Seite aus.
Sylvainulg
0

Das command-not-foundPaket sollte diese Funktion in neueren Distributionen bereitstellen.

Wenn nicht, können Sie es manuell über die command_not_found_handle()Funktion aufrufen .

Eine andere Alternative ist dies .

eadmaster
quelle