Como redirecionar stdout e stderr no script bash com caixas de diálogo?

0

Para um único script redirecionando stdout e stderr para um arquivo com isto:

./myscript.sh 2>&1 | tee -a out_file

funciona bem. Quando tento executar da mesma forma um script contendo várias caixas de diálogo criadas com o comando dialog (e chamando outros scripts)

./main.sh 2>&1 | tee -a out_file

o out_file contém caracteres indesejados devido a essas caixas. Por exemplo:

#!/bin/bash
# myscript.sh

dialog --title "Title" \
--msgbox "Message Box" \
30 120
date 

gera com:

$ ./myscript.sh 2>&1 | tee -a myscript.out

várias linhas semelhantes a esta:

[36m[44m  [30m[40m[K[22;38H[39;49m(B[m[2;3H[30m[47mMessage Box[22;38H[39;49m(B[m

Como posso obter stdout e stderr sem esses caracteres (para scripts principais e todos os subsequentes)? Isso seria no exemplo a saída de date . É bom ter o que um usuário digitou em uma caixa de entrada.

    
por coverflower 06.04.2018 / 19:32

0 respostas