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?


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).


2

Sepertinya shopt akan menjadi awal yang baik.

Selain itu, tampaknya zsh memiliki koreksi kesalahan ketik bawaan.


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 .

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.