¿Hay un corrector tipográfico para bash?

8

Me gustaría que algo se enganche en el error 'comando no encontrado' en bash y ofrezca una solución útil.

Por ejemplo:

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

Sería bueno si dijera:

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

He visto personas que incluyen errores tipográficos comunes en el script .bash_profile como 'alias gerp = grep', pero creo que alguien probablemente ha escrito una extensión general para bash para arreglar este tipo de cosas.

¿Alguien ha oído hablar de tal extensión?

brianegge
fuente

Respuestas:

4

No conozco uno de uso general, pero hay uno para los nombres de directorio:

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

Esto es de la página de manual de Bash:

Si la búsqueda no tiene éxito, el shell busca un shell definido 
función llamada command_not_found_handle. Si esa función existe, es
invocado con el comando original y los argumentos del comando original  
como sus argumentos

Puede ser posible usar esto para hacer lo que quiera, pero el código sería todo un desafío. Por cierto, Ubuntu, por ejemplo, usa esto para mostrar paquetes que contienen el comando que no se encontró con las instrucciones de instalación (apt-get).

Pausado hasta nuevo aviso.
fuente
2

Parece que Shopt sería un buen comienzo.

Además, parece que zsh tiene una corrección tipográfica incorporada.

Matthew Talbert
fuente
el enlace a "shopt" parece una página en blanco desde aquí.
sylvainulg
0

el command-not-foundpaquete debería proporcionar esta característica en distribuciones recientes.

Si no, puede invocarlo manualmente desde la command_not_found_handle()función.

Otra alternativa es esta .

Eadmaster
fuente