rewinding stdin em um script bash
Existe uma maneira simples de "rebobinar"/dev/stdin
dentro do meu script bash que já leu toda ou parte do canal de entrad
Aplicação: escrevi um MDA simples que, na parte 1, lê um único email do fetchmail linha por linha, da seguinte forma:
while read -a linA; do
echo -e "$[++linenum]:\t${#linA[@]},${linA[*]}" > /dev/null # verbose
[ "${linA[0]}" = "Date:" ] && unset linA[0] && mailDate="${linA[*]}"
[ "${linA[0]}" = "Subject:" ] && unset linA[0] && mailSubject="${linA[*]}"
[ "$mailSubject" = "Courtesy Fill Notification" ] || break # if wrong subject then thank you, we're done with this mail
done
e no final do processamento, desejo salvar a mensagem inteira em um arquivo, tanto para depuração, como para que o lado do gravador do pipe veja que toda a saída foi lida e não retorne a falha (portanto, mantendo o mensagem como não lida na caixa de correio