Eu tenho um utilitário BASH que gera medições para a tela ao vivo enquanto ele é executado e grava o resultado no arquivo ao mesmo tempo. Estou tendo que repetir o mesmo código duas vezes (veja abaixo).
Uma vez para escrever na tela, e
Uma vez para gravar no arquivo.
Isso me parece muita redundância.
Posso colocar um bloco de texto em algo como uma função e chamá-lo para ser gravado na tela e no arquivo ao mesmo tempo?
Isso reduziria um monte de re-keying.
Exemplo abaixo
###### write out to file : push end time at end ################
echo >> $file_name
echo "End time: "$end_time >> $file_name
echo >> $file_name
echo >> $file_name
echo >> $file_name
###### print to screen : push end time at end #################
echo
echo "End time: "$end_time
echo
echo
echo
Então eu estaria procurando algo assim
funtion text_block{
###### print to screen : push end time at end #################
echo
echo "End time: "$end_time
echo
echo
echo
}
Então um comando que faz algo assim
"command
imprimir text_block
na tela, imprimir text_block
no arquivo"
Você pode usar o utilitário
tee
isso irá tanto escrever um nome de arquivo my_file.out quanto gravá-lo em stdout.
Fonte desta postagem do StackOverflow