A resposta da ctrl-d está correta.
Você parece não ter entendido o que o comando ps
é para . Ele lista processos em seu sistema.
Quando você executa o comando ps
, essa instância em execução em si é um processo.
Quando você executa o comando wc
, isso também é um processo.
Se você colocar alguns comandos cat
no pipeline, cada um deles também será um processo e cada um deles fará com que ps
produza mais uma linha de informações:
[vagrant@localhost ~]$ ps | wc -l
4
[vagrant@localhost ~]$ ps | cat | wc -l
5
[vagrant@localhost ~]$ ps | cat | cat | wc -l
6
[vagrant@localhost ~]$ ps | wc -l
4
[vagrant@localhost ~]$ ps
PID TTY TIME CMD
22912 pts/0 00:00:00 bash
29651 pts/0 00:00:00 ps
[vagrant@localhost ~]$
O fato de echo "test" | wc -l
exibir "1" é totalmente irrelevante.