Cabeça mal comportada com redirecionamento
Em uma resposta aPiping um arquivo através da cauda e cabeça via tee, um estranho comportamento dehead
foi observado no seguinte constructo ao trabalhar com arquivos grandes:
#! /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!?
Saída:1
2
3
999999
1000000
#
1
2
3
999999
1000000
#
1
2
3
15504
15
Questão:Por que a última linha não gera as mesmas linhas das duas linhas anteriores?