Sé que esta es una publicación antigua, pero ¿por qué no hacer esto?
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
Y, por supuesto, si desea stdout, puede imprimir regularmente.
Puede hacer esto con cualquier combinación de secuencias que desee, simplemente usando esos dos comandos básicos.
Sé que vine aquí y no obtuve una respuesta fácil de entender / implementar, espero que esto sea de ayuda para alguien más que está luchando.
Por cierto, para novatos como mi yo anterior, todo lo que hace el tee
comando es enviar la entrada stdin tanto a stdout como a los archivos especificados como argumentos posteriores. -a
significa anexar, por lo que no sobrescribe el archivo con cada uso del comando. Si tiene más preguntas, creo que este es un recurso muy útil para aprender rápidamente bash.