Existe um corretor de erros para bash?

8

Eu gostaria que algo se encaixasse no erro 'command not found' no bash e oferecesse uma correção útil.

Por exemplo:

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

Seria bom se dissesse:

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

Eu vi pessoas incluindo erros comuns no script .bash_profile como 'alias gerp = grep', mas eu acho que alguém provavelmente escreveu uma extensão geral para consertar esse tipo de coisa.

Alguém já ouviu falar de tal extensão?

    
por brianegge 23.09.2009 / 05:05

2 respostas

4

Eu não sei de um propósito geral, mas há um para nomes de diretório:

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

Isso é da página man do Bash:

If the search is unsuccessful, the shell searches for a defined shell 
function named command_not_found_handle.  If that function exists, it is 
invoked with the original command and the original command's arguments  
as its arguments

Pode ser possível usar isso para fazer o que você quer, mas o código seria um grande desafio. A propósito, o Ubuntu, por exemplo, usa isso para exibir pacotes que contêm o comando que não foi encontrado com instruções de instalação (apt-get).

    
por 23.09.2009 / 06:32
2

Parece que o shopt seria um bom começo.

Além disso, parece que o zsh possui correção de typo incorporada.

    
por 23.09.2009 / 06:32