Apakah ada kesalahan ketik untuk bash?

8

Saya ingin sesuatu terhubung ke kesalahan 'command not found' di bash dan menawarkan perbaikan yang bermanfaat.

Sebagai contoh:

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

Akan lebih baik jika dikatakan:

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

Saya telah melihat orang memasukkan kesalahan ketik umum dalam skrip .bash_profile seperti 'alias gerp = grep', tapi saya pikir seseorang mungkin telah menulis ekstensi umum untuk bash untuk memperbaiki hal semacam ini.

Adakah yang pernah mendengar ekstensi semacam itu?

brianegge
sumber

Jawaban:

4

Saya tidak tahu satu tujuan umum, tetapi ada satu untuk nama direktori:

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

Ini dari halaman manual untuk Bash:

Jika pencarian tidak berhasil, shell mencari shell yang ditentukan 
fungsi bernama command_not_found_handle. Jika fungsi itu ada, itu benar
dipanggil dengan perintah asli dan argumen perintah asli  
sebagai argumennya

Mungkin dimungkinkan untuk menggunakan ini untuk melakukan apa yang Anda inginkan, tetapi kode itu akan sangat menantang. Omong-omong, Ubuntu, misalnya, menggunakan ini untuk menampilkan paket yang berisi perintah yang tidak ditemukan dengan instruksi instalasi (apt-get).

Dijeda sampai pemberitahuan lebih lanjut.
sumber
2

Sepertinya shopt akan menjadi awal yang baik.

Selain itu, tampaknya zsh memiliki koreksi kesalahan ketik bawaan.

Matthew Talbert
sumber
tautan ke "shopt" terlihat seperti halaman kosong dari sini.
sylvainulg
0

yang command-not-foundpaket harus menyediakan fitur ini di distro baru-baru ini.

Jika tidak, Anda dapat menjalankannya secara manual dari command_not_found_handle()fungsi.

Alternatif lain adalah ini .

eadmaster
sumber