Je suppose que dans le premier cas le shell lance le premier echo et pipe son stdout au stdin de rev. Quand le premier echo quitte, son buffer stdout est vidé et donc rev recois la chaine par stdin. Puis le shell lance de la même manière sleep et le second echo, a chaque fois qu'un programme quitte son tampon de sortie est vidée.
Par contre, pour les deux rev, le buffer n'est vidé que quand le premier rev quitte, donc après les 2 secondes.
Ce qui est étrange c'est que quand stdout est le terminal, un retour à la ligne est sufisant pour vider le buffer de sortie. Apparemment ce n'est pas le cas pour un pipe.
# Buffer flush ...
Posté par Arnaud Taffanel . En réponse au message Flux dans un pipe. Évalué à 5.
Par contre, pour les deux rev, le buffer n'est vidé que quand le premier rev quitte, donc après les 2 secondes.
Ce qui est étrange c'est que quand stdout est le terminal, un retour à la ligne est sufisant pour vider le buffer de sortie. Apparemment ce n'est pas le cas pour un pipe.