O comando tee
é bom para capturar a saída de comandos não interativos. Para aplicativos de terminal interativo, o pacote bsdutils
fornece o comando script
, que permite gravar a saída no terminal, permitindo que você interaja com o aplicativo como de costume. A diferença entre os dois é que script
dará ao aplicativo a impressão de ser executado em um terminal e isso pode fazer uma diferença na maneira como o utilitário se comporta. Além disso, script
captura o erro padrão sem precisar fazer redirecionamentos adicionais na linha de comando do shell.
Você pode usá-lo assim:
$ script -c script.sh output.log
(onde script.sh
é considerado em $PATH
) ou
$ script -c "script.sh arguments" output.log
A execução sem a opção -c "${command}"
executará o shell e permitirá salvar a sessão do shell em um arquivo.
Como bsdutils
é um pacote "essencial" e sua prioridade é "obrigatória", você pode tê-lo instalado. Apenas tente emitir o comando script
(seguido por exit
para parar a gravação no arquivo padrão typescript
).
Em geral, eu geralmente prefiro script
over tee
, embora muitos aplicativos terminais interativos pareçam rodar muito bem quando a saída é canalizada para tee
.