Você quis dizer esse comando? (como responder a isto)

2

Suponha que eu digite o seguinte no terminal:

wgets "link"

Eu receberei a resposta:

No command 'wgets' found, did you mean: Command 'wget' from package 'wget' (main)

Eu cometi um erro, e o terminal me avisou.

Existe algum comando que eu possa digitar após o terminal ter me avisado, para então executar o comando acima com o que ele achou que era?

Por exemplo:

->wgets "link"

->No command 'wgets' found, did you mean:
 Command 'wget' from package 'wget' (main)

->yes (this command I am looking for ... is there one?)

-> executing wget "link"
    
por K Split X 23.06.2017 / 22:27

2 respostas

1

Mude para zsh (instalado por padrão no macOS e disponível como um pacote em todas as principais distribuições Linux, * BSD, e coleções de software para outros sistemas operacionais Unix-like). Tem autocorreção para nomes de comandos.

% wgets
zsh: correct 'wgets' to 'wget' [nyae]? y
wget: missing URL
…
    
por 26.06.2017 / 01:33
3

Em Bash , você pode usar search and replace para modificar o comando incorreto executado anteriormente. Do seu exemplo:

->wgets "link"

->No command 'wgets' found, did you mean:
 Command 'wget' from package 'wget' (main)

->^wgets^wget^

O wgets será substituído por wget e o comando será executado.

Para facilitar isso em um comando anterior à lista do histórico:

->!wgets:s/wgets/wget/

De man 3 history em Event Designators :

!string
     Refer to the most recent command starting with string.

...

^string1^string2^
     Quick Substitution.  Repeat the last command, replacing string1
     with string2.  Equivalent to ''!!:s/string1/string2/''.
    
por 23.06.2017 / 23:29