Gibt es einen Tippfehler für bash?

2054
brianegge

Ich möchte, dass sich etwas in den 'command nicht gefunden'-Fehler in der bash einfügt und ein nützliches Update anbietet.

Zum Beispiel:

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

Es wäre schön, wenn es heißt:

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

Ich habe gesehen, dass Leute häufige Tippfehler in das .bash_profile-Skript wie 'alias gerp = grep' einfügen, aber ich denke, jemand hat wahrscheinlich eine allgemeine Erweiterung für bash geschrieben, um diese Art von Dingen zu beheben.

Hat jemand von einer solchen Erweiterung gehört?

8
http://www.catb.org/~esr/jargon/html/D/DWIM.html Richard Hoskins vor 14 Jahren 1

2 Antworten auf die Frage

4
Dennis Williamson

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 das wird mit dem ursprünglichen Befehl und den Argumenten des ursprünglichen Befehls aufgerufen  als seine Argumente 

Möglicherweise können Sie dies verwenden, um das zu tun, was Sie möchten, aber der Code wäre eine ziemliche Herausforderung. Ubuntu verwendet dies beispielsweise zum Anzeigen von Paketen, die den Befehl enthalten, der nicht in Installationsanweisungen gefunden wurde (apt-get).

2
Matthew Talbert

Sieht aus, als wäre Shopt ein guter Anfang.

Es scheint auch, dass in zsh eine Tippfehler-Korrektur eingebaut ist.

Der Link zu "Shopt" sieht von hier aus wie eine leere Seite aus. sylvainulg vor 9 Jahren 0