Утилита bash «диалог» оставляет беспорядочный экран

sudo lxc-ls --fancy -F ipv4 $my_container_name | tail -1

1
задан 13 August 2014 в 16:30

2 ответа

Я знаю, что уже поздно, но, возможно, вам нужно переключиться на альтернативный экран (например, nano, vim и другие), поэтому вы можете попробовать --keep-tite.

На странице альтернативного экрана :

--keep-tite: обычно диалог проверяет, работает ли он в xterm, и в этом случае пытается для подавления строк инициализации, которые заставили бы его переключиться на альтернативный экран. Переключение между обычным и альтернативным экранами визуально отвлекает скрипт, который запускает диалог несколько раз. Используйте этот параметр, чтобы диалоговое окно позволяло использовать эти строки инициализации.

Вот пример:

echo "Write something before invoking dialog."
dialog --keep-tite --msgbox "Hello world!" 0 0

После того, как пользователь нажал «ОК», результат, напечатанный до вызова dialog ..., будет восстановлен.

3
ответ дан 24 May 2018 в 04:41
  • 1
    nope проблема остается (диалог 1.2 в терминале gnome 3.14) – vladkras 14 January 2016 в 12:38
  • 2
    Это работало для меня, используя диалог 1.2, bash 4.3 и несколько эмуляторов терминала. Спасибо. – Enrico 19 March 2016 в 22:31

Просто добавьте clear после строки dialog:

...
dialog --ascii-lines --title "Administrative tasks"  --menu  "Tasks :" 20 0 0 1 "Display firewall settings" 2 "Restore firewall settings" 3 "Flush Firewall settings" 2>$TEMP
clear #clears the terminal screen
choice=`cat $TEMP`
case $choice in
...
1
ответ дан 24 May 2018 в 04:41
  • 1
    Это очищает экран, все предыдущие тексты теряются. Следовательно, необходимость "восстановления" состояние экрана. У меня там было ясно, но я хотел бы восстановить состояние экрана. Таким образом, я все еще вижу текст, который был на экране, прежде чем я выполнил команду. – Meer Borg 13 August 2014 в 16:43

Другие вопросы по тегам:

Похожие вопросы: