Considere el siguiente comando:
bash -c "echo x; cat 1" | tee 1.
Tengo entendido que se bifurcaría a un nuevo shell, escribiría xen stdout, escribiría file 1 not founden stderr, saldría y devolvería el control al proceso padre, y escribiría xen stdout y to 1. Por lo tanto, esperaría que el resultado final fuera x, y el archivo 1contiene exactamente la cadena x.
Sin embargo, éste no es el caso. En realidad, el archivo 1generalmente contiene al menos dos instancias xy, a veces, miles de líneas de xs. En una prueba por lotes de ejecutar el comando diez mil veces, el número medio de xs escritos en el archivo fue 52.3, y la mediana fue 1. ¿Qué mecánico está causando esto? ¿Qué distribución de probabilidad modela este comportamiento? Sospecho que es condicionalmente geométrico y por lo demás uniforme.
xs escritos en el archivo fue de 4.35. Supongo que dependerá mucho de la carga de la máquina.
teeha abierto el archivo para escribir antes de abrirlocatpara leer, puede obtener muchosx-es en el archivo. En ese caso, el "ciclo" terminaría siempre que lascatlecturas fueran más rápidas que lasteeescrituras, llegando al final del archivo.