Как перенаправить stdout и stderr в скрипте bash с помощью диалоговых окон?

504
coverflower

Для одного скрипта, перенаправляющего stdout и stderr в файл с этим:

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

работает отлично. Когда я пытаюсь таким же образом запустить скрипт, содержащий несколько диалоговых окон, созданных с помощью команды dialog (и вызывающих другие скрипты)

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

out_file содержит нежелательные символы из-за этих полей. Например:

#!/bin/bash # myscript.sh  dialog --title "Title" \ --msgbox "Message Box" \ 30 120 date  

генерирует с:

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

несколько строк, похожих на эту:

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

Как я могу получить stdout и stderr без этих символов (для основного и всех последующих сценариев)? Это было бы в примере вывода даты . Приятно было бы то, что пользователь ввел в поле ввода.

0
вы можете использовать tr, чтобы избавиться от него, как `tr -d 'ﮛ'`, так что, возможно, как` ./main.sh 2> & 1 | tr -d 'ﮛ' | tee -a out_file` barlop 6 лет назад 0
Нам нужны детали сценариев и нежелательных персонажей. Пожалуйста, расширьте свой вопрос, чтобы включить их. AFH 6 лет назад 0
Попробуйте использовать параметр dialog --stdout, `dialog --stdout ...` Paulo 6 лет назад 0

0 ответов на вопрос