Czy istnieje korektor literówek do bash?


8

Chciałbym, aby coś podpięło się w błędzie „nie znaleziono polecenia” na bash i zaoferowało przydatną poprawkę.

Na przykład:

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

Byłoby miło, gdyby powiedział:

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

Widziałem, jak ludzie zawierają typowe literówki w skrypcie .bash_profile, takie jak „alias gerp = grep”, ale wydaje mi się, że ktoś prawdopodobnie napisał ogólne rozszerzenie bash, aby naprawić tego rodzaju rzeczy.

Czy ktoś słyszał o takim przedłużeniu?


Odpowiedzi:


4

Nie znam ogólnego przeznaczenia, ale jest jeden dla nazw katalogów:

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

To jest ze strony podręcznika użytkownika Bash:

Jeśli wyszukiwanie się nie powiedzie, powłoka szuka zdefiniowanej powłoki 
funkcja o nazwie command_not_found_handle. Jeśli ta funkcja istnieje, to jest
wywoływane z oryginalnym poleceniem i argumentami oryginalnego polecenia  
jako swoje argumenty

Może być możliwe użycie tego do robienia tego, co chcesz, ale kod byłby sporym wyzwaniem. Nawiasem mówiąc, na przykład Ubuntu używa tego do wyświetlania pakietów zawierających polecenie, które nie zostało znalezione wraz z instrukcjami instalacji (apt-get).



0

command-not-foundpakiet powinien zapewnić tę funkcję w ostatnich dystrybucjach.

Jeśli nie, możesz wywołać go ręcznie z command_not_found_handle()funkcji.

Inną alternatywą jest to .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.