wc imprime uma contagem de bytes para um processo inexistente

0

Me deparei com um programa chamado wc, que imprime o número de bytes, palavras e linhas em arquivos. Agora, minha intenção é usá-lo para determinar se um processo está realmente em execução no meu computador. Se for, deve imprimir o número de bytes no processo em execução. Caso contrário, deve imprimir 0. Mas eu posso usar um processo fictício e ainda imprime bytes:

$ ps -ef | grep dfdsfdf | wc -c
74

De onde vem esse 74?

    
por JohnMerlino 07.03.2014 / 07:46

1 resposta

0

Ok

primeiro de tudo

ps -ef 

listará todos os processos no sistema

Depois você canaliza o resultado e procura pela string "dfdsfdf"

A saída não será nada a menos que o comando grep

hadi  28052 27027  0 08:54 pts/0    00:00:00 grep --color=auto dfdsfdf

Agora você está passando esta saída para o pipeline e depois contando os charters desta saída e, assim, você obtém 74.

Para verificar algo, remova um caractere da string "dfdsfdf" e depois conte como 73.

veja:

ps -ef | grep dfdsfd | wc -c
73

Obrigado ao @steeldriver pelo seu comentário.

% bl0ck_qu0te%
ps -ef | grep [d]fdsfdf | wc -c

Isso retornará 0

    
por Maythux 07.03.2014 / 07:56