Eu sei que este é um post antigo, mas por que não fazer isso?
echo "hi" >> log.txt #stdout -> log
echo "hi" | tee -a log.txt #stdout -> log & stdout
echo "hi" &>> log.txt #stdout & stderr -> log
echo "hi" |& tee -a log.txt #stdout & stderr -> log & stdout
E, claro, se você quiser stdout, basta imprimir regularmente.
Você pode fazer isso com qualquer combinação de fluxos que desejar, usando apenas esses dois comandos básicos.
Eu sei que vim até aqui e não obtive uma resposta fácil de entender / implementar, espero que isso ajude a outra pessoa que está com dificuldades.
A propósito, para noobs lá fora como no meu self anterior, todo o comando tee
faz a saída stdin para o stdout e o (s) arquivo (s) especificado (s) como argumentos subseqüentes. -a
significa acrescentar, assim você não sobrescreve o arquivo com todo uso do comando. Se você tiver outras dúvidas, eu acho que isso é um recurso muito útil para aprender rapidamente bash.