Garbage no arquivo de log da sessão bash. (usando o comando script)

2

Eu tentei log bash session usando:

js:/var/tmp # script -aqf /var/tmp/out

No arquivo out eu vejo, além da saída, muito lixo. Em vez de apenas espaços em branco e novas linhas, vejo isso, por exemplo:

Script started on Tue Jul 14 14:17:57 2015
^[[?1034h^[[1m^[[31mjs-om:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mpwd^M
/var/tmp^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[m^M
^[[1m^[[31mjs:/var/tmp # ^[(B^[[mexit^M
exit^M

Eu acho que o problema é com codificações. Existe uma solução para este problema?

    
por Iurii 14.07.2015 / 14:24

3 respostas

2

Não, o problema não é com a codificação. Você não parece seguir os pré-requisitos para a tela, conforme mencionado na man page:

 Certain interactive commands, such as vi(1), create garbage in the type‐
 script file.  Script works best with commands that do not manipulate the
 screen, the results are meant to emulate a hardcopy terminal.

Você tem todo tipo de coisa provavelmente resultante de um prompt complexo. Defina seu prompt

PS1="$ " 

para evitar isso de escrever lixo.

    
por 14.07.2015 / 14:35
1

Além de corrigir seu PS1 , talvez seja possível persuadir os aplicativos a não emitirem esses caracteres não imprimíveis exportando um valor adequado na variável de ambiente TERM . O canônico provavelmente é export TERM=dumb no início de sua script sessão (ou TERM=dumb script <args> ao invocar). Supondo que você crie seu PS1 portably usando tput , o último também pode funcionar para isso.

    
por 14.07.2015 / 19:15
0

Removendo caracteres de controle (incluindo códigos de console / colors) da saída do script parece responder à sua pergunta.

Primeiro você usa script + depois de limpar o arquivo datilografado de todas as seqüências de escape.

    
por 14.07.2015 / 14:27