Bash Utilidad 'Dialogo' deja una pantalla desordenada -- bash campo con scripts campo con dialog camp askubuntu Relacionados El problema

bash utility 'dialog' leaves a messy screen


5
vote

problema

Español

Cuando ejecuto este script muestra las opciones en un estilo de menú en mi terminal y luego ejecuta el comando Relavent en el script.

pantalla de script

  #!/bin/sh TEMP=/tmp/answer$$ 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 choice=`cat $TEMP` case $choice in         1)      iptables -L                 ;;         2)      iptables-restore </etc/iptables.firewall.rules                 iptables -L                 ;;         3)      iptables --flush                 iptables -L                 ;; esac echo Selected $choice   

Pero cuando sale de la pantalla está desordenado.

¿Hay alguna manera de "guardar" el estado de la pantalla antes de que lo pase y lo restaure?

¿Hay un mejor programa de scripts de "Windows" que se ejecuta en una pantalla de texto?

Screen Screen

Original en ingles

When I run this script it displays options in a menu style on my terminal and then runs the relavent command in the script.

Script Screen

#!/bin/sh TEMP=/tmp/answer$$ 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 choice=`cat $TEMP` case $choice in         1)      iptables -L                 ;;         2)      iptables-restore </etc/iptables.firewall.rules                 iptables -L                 ;;         3)      iptables --flush                 iptables -L                 ;; esac echo Selected $choice 

But when it exits the screen is messed up.

Is there a way to "save" the state of screen before I ran this and restore it?

Is there a better "Windows" scripting program that runs in a text screen?

Messed up Screen

        
     
     

Lista de respuestas

3
 
vote
vote
La mejor respuesta
 

The ABCDEFGHIJKLMNABCDEFGHIJKLMN6 PANPAGE < / a> menciona whiptail (en una moda bastante despreciable). No tiene la opción --ascii-linesDefghijklmn8 , pero no está arruinando la pantalla:

Captura de pantalla de terminal con consecuencias de diálogo y WHIPLAIL

El guión:

  ABCDEFGHIJKLMNABCDEFGHIJKLMN9   

La pantalla de ABCDEFGHIJKLMNABCDEFGHIJKLMN10 : captura de pantalla de WHIPLAIL EN ACCIÓN

Entre otras cosas, ABCDEFGHIJKLMNABCDEFGHIJKLMN11 se basa en ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 2 en lugar de ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 3 . También es una dependencia de ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 4 , por lo que debe instalarse en todos los sistemas Ubuntu de forma predeterminada (al menos, a partir de 14.04).

 

The dialog manpage mentions whiptail (in a rather deprecating fashion). It does not have the --ascii-lines option, but it does not mess up the screen either:

terminal screenshot with aftermaths of dialog and whiptail

The script:

#!/bin/sh TEMP=/tmp/answer$$ whiptail --title "Administrative tasks"  --menu  "Tasks :" 20 0 0 1 "Display firewall settings" 2 "Restore firewall settings" 3 "Flush Firewall settings" 2>$TEMP choice=`cat $TEMP` case $choice in         1)      echo 1 #iptables -L                 ;;         2)      echo 2 #iptables-restore </etc/iptables.firewall.rules                 #iptables -L                 ;;         3)      echo 3 #iptables --flush                 #iptables -L                 ;; esac echo Selected $choice 

The display from whiptail: screenshot of whiptail in action

Among other things, whiptail is based on newt instead of ncurses. It is also a dependency of ubuntu-minimal, so it should be installed on all Ubuntu systems by default (at least, as of 14.04).

 
 
   
   
10
 
vote

Sé que es tarde, pero quizás quiera cambiar a la pantalla alternativa (como ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 5 , abcdefhijklmnabcdefghijklmn16 , y otros), para que pueda intentarlo a la opción ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 7 .

del cuadro de diálogo 's Página:

- keep-tite : normalmente los controles de diálogo para ver si se está ejecutando en un xterm, y en ese caso intenta suprimir las cadenas de inicialización que lo harían cambiar a la pantalla alternativa. La conmutación entre las pantallas normales y alternativas se distrae visualmente en un script que ejecuta el cuadro de diálogo varias veces. Use esta opción para permitir que el cuadro de diálogo use esas cadenas de inicialización.

Aquí hay un ejemplo:

  ABCDEFGHIJKLMNABCDEFGHIJKLMN18   

Después de que el usuario ingrese a OK, la salida impresa antes de invocar ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ Microsoft Trackball Explorer® id=11 [slave pointer (2)] ⎜ ↳ Mitsumi Electric Apple Optical USB Mouse id=10 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Power Button id=7 [slave keyboard (3)] ↳ USB 2.0 Camera id=8 [slave keyboard (3)] ↳ UVC Camera (046d:08c9) id=9 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=12 [slave keyboard (3)] ↳ BTC USB Multimedia Keyboard id=13 [slave keyboard (3)] ↳ Eee PC WMI hotkeys id=14 [slave keyboard (3)] 9 se restaura.

 

I know it's late, but maybe you want to switch to the alternate screen (like nano, vim, and others do), so you could give a try to the --keep-tite option.

From the dialog's man page:

--keep-tite: Normally dialog checks to see if it is running in an xterm, and in that case tries to suppress the initialization strings that would make it switch to the alternate screen. Switching between the normal and alternate screens is visually distracting in a script which runs dialog several times. Use this option to allow dialog to use those initialization strings.

Here's an example:

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

After the user hits OK, the output printed before invoking dialog ... is restored.

 
 
   
   
1
 
vote

solo agregue Microsoft Trackball Explorer®0 después del Microsoft Trackball Explorer®1 line:

  Microsoft Trackball Explorer®2  
 

Just add clear after the dialog line:

... 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 ... 
 
 
 
 

Relacionados problema

1  ¿Hay alguna manera de preseleccionar el área de ubicación en los cuadros de diálogos "Abrir archivo abierto" de Nautilus o "Guardar como"?  ( Is there a way to pre populate the location area in the nautilus open file or ) 
Me pregunto si es posible tener Nautilus Gnome / Unity configurado para rellenar siempre el área de ubicación en los cuadros de diálogos "Abrir archivo" o "Gu...

33  ¿Puedo evitar que las aplicaciones seleccionen "Recientemente usadas" de forma predeterminada en los cuadros de diálogos del Selector de archivos?  ( Can i stop apps from selecting recently used by default in file chooser dialog ) 
En Ubuntu y Kubuntu 11.10 Veo cambios en el comportamiento del diálogo del Selector de archivos GTK. Cuando intento abrir el cuadro de diálogo Nuevo archivo (...

2  Abrir las ventanas de diálogo personalizadas (Pygtk + rápidamente)  ( Open custom dialog windows pygtk quickly ) 
Acabo de descargarme rápidamente, creó un nuevo proyecto, configure GUI simple y creó un nuevo cuadro de diálogo (, agregue un cuadro de diálogo, cree (como ...

31  ¿Cómo separar los cuadros de diálogo modales de la ventana principal? Diálogos emergentes adjuntos al título de la ventana y no móvil  ( How to detach modal dialogs from main window popup dialogs attached to window t ) 
No estoy seguro de la terminología aquí, pero la mayoría de los cuadros de diálogos emergentes (consulte la captura de pantalla a continuación) se adjuntan al...

2  Algunos textos aparecen como "etiqueta vacía"  ( Some texts appear as label empty ) 
Tengo un problema con algunos de los textos que no aparecen en Ubuntu 11.04. Utilizo la traducción al español de Ubuntu y reinstalar los paquetes no resolvió ...

5  ¿Qué significa este mensaje de diálogo de inicio "no se pudo actualizar el archivo iCeauthority"?  ( What does this startup dialog message mean could not update iceauthority file ) 
Reinicié a Ubuntu hace unos minutos, y obtuve un cuadro de diálogo de advertencia al principio del proceso de arranque (antes de que se acabara el escritorio)...

4  Barra de ruta que falta en el cuadro de diálogo de archivo después de ejecutar el actualizador de software para Ubuntu 17.04  ( Path bar missing in file dialog after running software updater for ubuntu 17 04 ) 
Después de ejecutar el actualizador de software, la barra de ruta en el cuadro de diálogo de archivo (por ejemplo, el que obtiene al elegir el archivo abierto...

1  ¿Dónde está el lugar "Search" en el cuadro de diálogo Abrir archivo?  ( Where is the search place in the file open dialog ) 
Recuerdo que en versiones anteriores de Ubuntu hubo un lugar de "búsqueda" en el cuadro de diálogo Abrir archivo (por ejemplo, como el de esta captura de pan...

3  Sube archivo de URL  ( Upload file from url ) 
He estado usando Windows por un tiempo, y con él hay una función cuando desea cargar una foto (por ejemplo) a un sitio web, haga clic en el "Elegir archivo" e...

6  Herramientas de color GIMP (colorear, brillo, curvas, etc.) no están funcionando  ( Gimp color tools colorize brightness curves etc arent working ) 
Cuando intento ejecutar herramientas de modificación de color como el botón derecho y GT; Colores y gt; Colorice (o cualquiera de las herramientas de color, b...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos