Existe-t-il un correcteur de faute de frappe pour bash?

8

J'aimerais que quelque chose se connecte à l'erreur «commande introuvable» sur bash et offre un correctif utile.

Par exemple:

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

Ce serait bien s'il disait:

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

J'ai vu des gens inclure des fautes de frappe courantes dans le script .bash_profile comme 'alias gerp = grep', mais je pense que quelqu'un a probablement écrit une extension générale pour bash pour corriger ce genre de chose.

Quelqu'un a-t-il entendu parler d'une telle extension?

brianegge
la source

Réponses:

4

Je n'en connais pas de généraliste, mais il y en a un pour les noms de répertoire:

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

Ceci est de la page de manuel de Bash:

Si la recherche échoue, le shell recherche un shell défini 
fonction nommée command_not_found_handle. Si cette fonction existe, il est
invoqué avec la commande d'origine et les arguments de la commande d'origine  
comme ses arguments

Il pourrait être possible de l'utiliser pour faire ce que vous voulez, mais le code serait tout un défi. Par ailleurs, Ubuntu, par exemple, l'utilise pour afficher les packages qui contiennent la commande qui n'a pas été trouvée avec les instructions d'installation (apt-get).

En pause jusqu'à nouvel ordre.
la source
2

On dirait que shopt serait un bon début.

En outre, il semble que zsh dispose d'une correction de faute de frappe intégrée.

Matthew Talbert
la source
le lien vers "shopt" ressemble à une page vierge d'ici.
sylvainulg
0

le command-not-foundpackage devrait fournir cette fonctionnalité dans les distributions récentes.

Sinon, vous pouvez l'invoquer manuellement à partir de la command_not_found_handle()fonction.

Une autre alternative est ce .

eadmaster
la source