Kopf mit Umleitung schlecht benommen

In einer Antwort aufEine Feile durch Schwanz und Kopf über ein T-Stück leiten, ein merkwürdiges Verhalten vonhead wurde im folgenden Konstrukt beim Arbeiten mit großen Dateien beobachtet:

#! /bin/bash
for i in {1..1000000} ; do echo $i ; done > /tmp/n

( tee >(sed -n '1,3p'        >&3 ) < /tmp/n | tail -n2 ) 3>&1 # Correct
echo '#'
( tee >(tac | tail -n3 | tac >&3 ) < /tmp/n | tail -n2 ) 3>&1 # Correct
echo '#'
( tee >(head -n3             >&3 ) < /tmp/n | tail -n2 ) 3>&1 # Not correct!?
Ausgabe:
1
2
3
999999
1000000
#
1
2
3
999999
1000000
#
1
2
3
15504
15
Frage:

Warum gibt die letzte Zeile nicht die gleichen Zeilen aus wie die beiden vorhergehenden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage