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 .