Cómo mostrar el cuadro de diálogo

  
en Bash Shell Script

Este tutorial ofrece ejemplos de cómo proporcionar mensajes /diálogos en Bash Shell scripts usando herramientas como zenity y whiptail. Usando estas herramientas, su script puede decirle al usuario qué está haciendo el programa actual e interactuar con él. La diferencia entre estas dos herramientas es la forma en que se muestra el cuadro de diálogo o mensaje. Zenity crea una interfaz gráfica de usuario con el kit de herramientas GTK, mientras que whiptail crea un cuadro de mensaje dentro de la ventana del terminal.

Zenity Tools

Instalación de zenity en Ubuntu, ejecute:

 sudo apt-get install zenity 

El comando para crear un cuadro de mensaje o diálogo con zenity se explica por sí mismo Te daremos algunos ejemplos para referencia.

Crear un cuadro de mensaje

 zenity --info --title " Cuadro de información " --text " Esto debe ser información " --width = 300 --height = 200 


Crear un diálogo de consulta Sí /No

 zenity --question --text " ¿Desea esto? " --ok-label " Sí " --cancel-label = " No " 


Crea un cuadro de entrada y guarda los valores de entrada en una variable

 a = $ (zenity --entry --title " Cuadro de entrada " --text " Ingrese el valor " --width = 300 --height = 200) echo $ a 


Cuando se ingresa, el valor se almacena en la variable $ a.

Este es un ejemplo del mundo real de obtener un nombre de usuario y mostrarlo.

 #! /bin /bash ## Esta secuencia de comandos pedirá un par de parámetros # y luego continuará trabajando según los valores ingresados ​​## Dando la opción a la ciudadanía --question --text " ¿Desea ¿Para continuar? &Quot; # Comprobando si el usuario desea continuar [$? -Eq 0] |
 |
  Salir 1 # Permitiendo que el usuario ingrese algunos valoresFIRSTNAME = $ (zenity --entry --title " cuadro de entrada " --text " Por favor, ingrese su nombre. &Quot; --width = 300 --height = 150) LASTNAME = $ (zenity --entry --title " cuadro de entrada " --text " Por favor, ingrese su apellido. " --width = 300 --height = 150) EDAD = $ (zenity --entry --title " Cuadro de entrada " --text " Por favor, ingrese su edad. " --width = 300 --height = 150) # Visualización de los valores ingresados ​​en el cuadro de información --info --title " Información " --text " Tienes $ {FIRSTNAME} $ {LASTNAME} y tienes $ {AGE} (s). &Quot; --width = 300 --height = 100 

Estas son capturas de pantalla de la ejecución del script anterior.


Box1


Input Box


Input Box


Cuadro de entrada


Cuadro de mensaje

No olvide revisar las útiles opciones de zenity que podrían ayudarle.

Whiptail Tools

Instalación de whiptail en Ubuntu, ejecutando

 sudo apt-get install whiptail 

El comando para crear un cuadro de mensaje o diálogo con whiptail también es inexplicable. Le daremos algunos ejemplos básicos para su referencia.

Crear un cuadro de mensaje

 whiptail --msgbox " Este es un mensaje " 10 40 


Crear un diálogo Sí /No

 whiptail --yes-button " Yeah " --no-button " Nope " --title " Elija la respuesta " --yesno " ¿Elegirá sí? " 10 30 


Cree un cuadro de entrada con los valores predeterminados

 whiptail --inputbox " Ingrese su número, por favor. &Quot; 10 30 " 10 " 


Un punto para intentar usar el valor de entrada Es preciso mostrar el diálogo con stdout y generar el valor con stderr. En este caso, si usa var = $ (…), no verá el cuadro de diálogo en absoluto, ni podrá obtener el valor ingresado. La solución es intercambiar stdout y stderr. Agregue 3 > &1 1 > &2 2 > &3 al comando whiptail. Lo mismo es cierto para cualquier comando de whiptail para el que desee obtener el valor de entrada.

Crear menú de menú

 whiptail --menu " Este es un menú. Elija una opción: " 20 50 10 1 " primero " 2 " segundo " 3 " tercer "; 


Este es un script de shell que le pide al usuario que ingrese la ruta a una carpeta y muestre su tamaño.

 #! /bin /bash ### Como whiptail tiene que usar stdout para mostrar el diálogo, el valor ingresado se almacenará en stderr. Para cambiarlos y obtener el valor de stdout, debe # usar 3 > &1 1 > &2 2 > &3FOLDER_PATH = $ (whiptail --title " Obtener el tamaño de la carpeta " /- cuadro de entrada " Introduzca la ruta de la carpeta: " /10 30 /" /home " /3 > &1 1 > &2 2 > &3) if [-d $ FOLDER_PATH] thensize = $ (du -hs " $ FOLDER_PATH " |
  Awk '{print $ 1}') whiptail --title " Información " /- msgbox " El tamaño de $ {FOLDER_PATH} es $ {size} " /10 40elif [-f $ FOLDER_PATH] thenwhiptail --title " ¡Advertencia !!! " /- msgbox " ¡La ruta que ingresó es una ruta a un archivo, no una carpeta! &Quot; /10 40elsewhiptail --title " Error !!! " - msgbox " Ruta que ingresó No se reconoce. Inténtelo de nuevo " /10 40fi 

​​Estas son algunas capturas de pantalla del ejemplo anterior:


cuadro de entrada


cuadro de mensaje

Si trabaja bajo el terminal, el manual de ayuda siempre es útil.

Conclusión

La selección de la herramienta adecuada para mostrar el cuadro de diálogo depende de si desea ejecutar su script en el escritorio o servidor. Los usuarios de máquinas de escritorio suelen utilizar un entorno de ventana GUI, o pueden ejecutar scripts e interactuar con las ventanas mostradas. Sin embargo, si espera que el usuario esté trabajando en el servidor (en ausencia de una interfaz gráfica), es posible que desee asegurarse de que siempre se muestre, luego use whiptail o cualquier otra herramienta que muestre el diálogo en una ventana de terminal pura. Br>

Copyright © Conocimiento de Windows All Rights Reserved