Não há problema real. O que está acontecendo aqui é que, como você não especificou nenhum arquivo para grep
para pesquisar, ele está escutando STDIN para que o texto seja pesquisado. É assim que os pipelines como tail -f /var/log/messages | grep "error"
funcionam: o comando tail
envia sua saída para a entrada padrão de grep
e grep
imprime somente as linhas que correspondem à string de pesquisa fornecida (neste exemplo, "error") .
Se você invocar grep
sem arquivos e sem canalizar nada para ele, ele herdará o fluxo de entrada padrão de seu terminal e escutará seu teclado. (Experimente! Digite alguma coisa e pressione Return, e você verá o eco correspondente se corresponder à string de pesquisa que você forneceu ao grep.) Para finalizar o processo do grep, pressione Control-C. Para obter resultados úteis, passe um ou mais arquivos como argumentos de linha de comando seguindo a string de pesquisa, por exemplo. grep "something" file.c file.h
, ou insira algo como no exemplo tail
acima.
É assim que o Unix grep funciona e como sempre funcionou. Se você costumava invocar o grep dessa maneira, e ele se comportava de maneira diferente, então o que você estava invocando não era o grep do Cygwin, mas algum outro utilitário, que por acaso tinha o mesmo nome e morava em um diretório anterior ao /bin
do Cygwin. $PATH
.