Isso é difícil de fazer diretamente porque script
coleta toda a saída em um terminal temporário e exibe que aparece naquele terminal em sua própria saída padrão.
Em test.sh
, você precisa distinguir as mensagens que deseja no terminal das mensagens que deseja apenas na transcrição. Por exemplo, adicione um prefixo a cada linha indicando seu nível de importância. Como as outras linhas do seu exemplo não começam com @
, prefiro apenas linhas não essenciais (somente transcrição) com @
.
rm -v foo.tmp | sed 's/^/@/'
date
pwd
E no script de wrapper:
script bar.log -c './test.sh | grep -v "^@"'
Eu não acho que você pode fazer muito melhor sem modificar o utilitário script
. (Se você quiser seguir esse caminho, acho que o método mais simples envolveria algumas linhas de expect
.)