Você poderia explicar por que esse comando (pgrep -d ',' -f cmdStr | top -c -p) não funciona?

0

Enquanto procurava como filtrar o comando no top console, encontrei a resposta.

top -c -p $(pgrep -d',' -f string_to_match_in_cmd_line)

Funciona perfeitamente.

Eu acho que é o mesmo que o comando pgrep -d ',' -f cmdStr | top -c -p , porque eles vão trabalhar para alimentar a saída de pgrep para a entrada de top , pelo menos eu acho.

No entanto, como você espera, ele retorna um erro top: -p requires argument

O que é diferente entre eles?

    
por asleea 28.11.2016 / 03:12

1 resposta

3

Não, eles não são iguais. Considere o comando echo . Você espera que

echo hello asleea

e

printf "asleaa\n" | echo hello

para produzir a mesma coisa? No caso top ... $(...) , o shell executa primeiro o material dentro de $(...) e coloca a saída na lista de argumentos para quando executa top .

É claro que top poderia ser escrito para ler valores adicionais de stdin se você deu a ele um flag que requer um argumento mas não deu um, mas não é assim que é implementado .

    
por 28.11.2016 / 03:45

Tags