Depende dos buffers do sistema operacional e do tempo entre a 10ª e a 11ª gravações de dmesg
.
Depois que head
escrever 10 linhas, ela será encerrada e dmesg
receberá SIGPIPE sinal se continuar escrevendo no pipe.
Dependendo do seu buffer do sistema operacional, dmesg
geralmente grava mais de 10 linhas antes que head
as consuma.
Para ver que head
consumiu mais de 10 linhas, você pode usar:
strace -f sh -c 'dmesg | head -n 10'
(Veja o processo head
, conte com o número de read
de chamadas do sistema.)
Para ver como o efeito da velocidade de escrita:
strace -f sh -c "perl -le '$|++;print 1 while 1' | head -n 10"