Si consideri il seguente comando:
bash -c "echo x; cat 1" | tee 1.
La mia comprensione è che sarebbe fork su una nuova shell, scrivere xsu stdout, scrivere file 1 not foundsu stderr, uscire e restituire il controllo al processo genitore e scrivere xsu stdout e su 1. Quindi, mi aspetto che l'output finale sia xe il file 1contiene esattamente la stringa x.
Tuttavia, questo non è il caso. In realtà, il file di 1solito contiene almeno due istanze di x, e talvolta migliaia di righe di xs. In un test batch di esecuzione del comando diecimila volte, il numero medio di xs scritte nel file era 52.3 e la mediana era 1. Quale meccanico sta causando questo? Quale distribuzione di probabilità modella questo comportamento? Sospetto che sia condizionatamente geometrico e altrimenti uniforme.
xscritti nel file era di 4,35. Immagino che dipenderà molto dal carico della macchina.
teeil file è stato aperto per la scrittura prima dicataprirlo per la lettura, è possibile che siano presenti moltixfile nel file. In tal caso, il "ciclo" terminerebbe ogni volta checatlegge più velocemente delleteescritture, raggiungendo la fine del file.