Considere o seguinte comando:
bash -c "echo x; cat 1" | tee 1.
Meu entendimento é que ele seria bifurcado para um novo shell, xgravaria em stdout, file 1 not foundgravaria em stderr, sairia e retornaria o controle ao processo pai e xgravaria em stdout e em 1. Portanto, eu esperaria que a saída final fosse xe o arquivo 1contém exatamente a string x.
No entanto, este não é o caso. Na realidade, o arquivo 1geralmente contém pelo menos duas instâncias xe, às vezes, milhares de linhas de xs. Em um teste em lote de executar o comando dez mil vezes, o número médio de xs gravados no arquivo foi 52,3 e a mediana foi 1. Que mecânico está causando isso? Que distribuição de probabilidade modela esse comportamento? Suspeito que seja condicionalmente geométrico e uniforme.
xs gravados no arquivo foi de 4,35. Eu acho que vai depender muito da carga da máquina.
teeabriu o arquivo para gravação antes de abri-catlo para leitura, você pode obter muitosx-es no arquivo. Nesse caso, o "loop" terminaria sempre que acatleitura fosse mais rápida que ateegravação, atingindo o final do arquivo.