Por que o Bash está relatando “comando não encontrado” em alguns casos no Terminal, mas não em outros?

1

Frequentemente, mas nem sempre, quando inicio o Terminal no meu computador e uso pipe ( | ) em um comando, pbpaste | wc como exemplo, o bash fornece -bash:  wc: command not found . (O espaço duplo não é um erro de digitação).

Depois de um tempo, encontrei uma solução: eu removi o espaço após o pipe ( pbpaste |wc ) e tudo funcionou normalmente. Mas quando eu corri o pipe com o espaço, tudo funcionou, e o bash achou o comando perfeitamente válido, mesmo quando eu entrei exatamente no mesmo comando alguns minutos atrás, ele não gostou do comando.

Aqui está uma captura de tela:

Eu tenho duas perguntas muito semelhantes:

  • O que faz o bash tratar essas duas linhas de maneiras diferentes, mesmo que sejam as mesmas? Eu não tenho ideia do porque isso acontece.
  • Como eu poderia consertar isso?
por Loovjo 12.12.2015 / 18:37

1 resposta

6

Há uma sugestão para o problema na mensagem de erro; há um espaço extra mostrando:

bash:  wc: … 

Em vez de:

bash: wc: …

Parto da sua pergunta que você está usando um Mac. Suponho que você esteja usando um layout de teclado no qual digitar o caractere | requer o uso da tecla Alt / Option . Eu acho que o que pode estar acontecendo é que você está deixando seu dedo permanecer na tecla Alt enquanto você digita o espaço.

Alt + Espaço digita um espaço sem quebra em vez de um caractere de espaço regular, que o analisador do Bash não considera ser espaço em branco de qualquer tipo e, portanto, leva como parte do nome do comando.

Funciona pela segunda vez porque você está digitando com mais cuidado!

    
por 13.12.2015 / 03:45