Como eu capturo a saída em uma variável e ainda a toco para a tela também?

1

Eu posso fazer OUTPUT=$(grunt test) e isso coloca a saída em OUTPUT , mas não está mais na tela. Eu preciso ver a saída como ela vem também, então eu não posso simplesmente esperar e, em seguida, echo $OUTPUT .

Como posso capturar a saída de um programa e ainda fazê-lo ir para a tela ao mesmo tempo?

    
por Justin808 23.04.2015 / 01:01

1 resposta

6

Você pode tentar algo assim:

exec 9>&1
OUTPUT=$(grunt test | tee /dev/fd/9)
exec 9>&-

Copia o stdout atual para o descritor de arquivo 9, usa tee para replicar a saída de grunt para esse descritor de arquivo e depois fecha o descritor de arquivo temporário.

    
por 23.04.2015 / 01:08