Por que a grep está imprimindo quando não há correspondência?

0
$ ps ax | grep 6557
#=> 6582 s003  S+     0:00.01 grep 6557

Mas, verificando rapidamente com o monitor de atividades, não há processo com um pid 6557. E tudo on-line diz que o grep deve retornar 0 quando não houver correspondência.

    
por MCB 09.03.2017 / 21:47

1 resposta

6

Aqui está a partida:

$ ps ax | grep 6557
6582 s003  S+     0:00.01 grep 6557
                               ^^^^ (found it!)

grep está verificando tudo na linha, incluindo o comando e os argumentos, e 6557 é o argumento que você deu a grep , então ele encontra seu próprio processo.

Um regex mais estrito pode corrigir esse caso específico: ^ indica o início da linha e \ \* corresponde a qualquer número de espaços iniciais, portanto, isso só encontrará correspondências no início da linha:

$ ps ax | grep ^\ \*6557
    
por 09.03.2017 / 21:49

Tags