Cómo mostrar cuadros de diálogo GUI en bash script usando Zenity

Mostrar cuadro de diálogo de texto de información usando script bash

Todos sabemos que los scripts bash de Linux son una verdadera fortaleza de Linux. A menudo queremos mostrar una interfaz gráfica de usuario (GUI) en nuestros scripts para facilitar la interacción con los usuarios. La GUI hace que cualquier script sea más fácil de usar y hermoso.

Para GTK en scripts de shell, hay muchas opciones y herramientas disponibles en Linux.

En este artículo, le mostraremos cómo usar Zenity para mostrar cuadros de diálogo de GUI en scripts de Bash.

Zenity es una aplicación de código abierto para mostrar una GUI simple en scripts de shell. Hace que los scripts sean más fáciles de usar al mostrar cuadros de diálogo GTK+. Zenity es una práctica herramienta de línea de comandos para scripts de shell modernos. Zenity es fácil de usar y una aplicación multiplataforma.

requisitos previos

Un usuario sudo con privilegios de root.

Instalar Zenity

Zenity es parte del escritorio GNOME y, de forma predeterminada, está instalado en la mayoría de las distribuciones de Linux. Puede verificar la instalación de Zenity en su sistema ejecutando el siguiente comando en la terminal.

zenity --version

Si Zenity no est√° instalado en su sistema, puede instalarlo usando Apto, dnf o pac-man dominio.

Para sistemas basados ‚Äč‚Äčen Ubuntu/Debian:

sudo apt-get install zenity

Para sistemas basados ‚Äč‚Äčen RedHat:

dnf install zenity

Para sistemas basados ‚Äč‚Äčen Arch:

pacman -S zenity

Zenity Opciones generales

Hay algunas opciones generales que se pueden usar con Zenity de forma independiente. Las opciones generales son –title, –window-icon, –width, –height, –timeout

Puede usar la opci√≥n —title para especificar un t√≠tulo para la ventana de di√°logo.

Puede utilizar la opci√≥n –window-icon para especificar un icono que se utilizar√° como icono para el cuadro de di√°logo de Zenity.

No solo eso, sino que tambi√©n puede establecer el ancho y el alto para el cuadro de di√°logo Zenity configurando las opciones –width y –height en el comando Zenity.

Al usar la opci√≥n –timeout, puede establecer un tiempo de espera del di√°logo, despu√©s de que ese cuadro de di√°logo se cierre autom√°ticamente.

Cuadro de mensaje Zenity

Puede crear un cuadro de di√°logo de mensaje GUI b√°sico y agradable usando el comando Zenity simple desde la terminal.

Cuatro tipos de mensajes de di√°logo disponibles en Zenity.

  • Informaci√≥n
  • Error
  • Pregunta
  • Advertencia

1. Un cuadro de diálogo de información

Puede crear un cuadro de diálogo de información ejecutando el siguiente comando en la terminal:

zenity --info --text="Software Update Available." --width=500

Mostrar cuadro de diálogo de texto de información usando script bash

2. Un cuadro de di√°logo de error

Ejecute el siguiente comando para mostrar el cuadro de di√°logo de error

zenity --error --text="Error In Installation" --title="Error" --width=500 --width=200

Mostrar di√°logo de error usando script bash

3. Un cuadro de di√°logo de preguntas

Puede solicitar fácilmente Sí de ninguna pregunta ejecutando el siguiente comando:

zenity --question --text="Do you want to reboot pc?" --width=200

Cuadros de di√°logo en bash
Puede usar el cuadro de di√°logo de preguntas de Zenity en un script de shell como este:

#/bin/bash
touch demo.txt
if zenity --question --title="Confirm deletion" --text="Are you sure you want to demo.txt file?" --no-wrap
    then
    rm demo.txt
    zenity --info --title="Success" --text="demo.text was removed" --no-wrap
fi

4. Un cuadro de di√°logo de advertencia

zenity --warning --title="Update Available" --text="OS Update required" --width=200

Bash mostrar cuadro de di√°logo de advertencia

Notificación

Puede mostrar Notificación usando Zenity.

zenity --notification --text "Good Morning"

Mostrar notificaciones de escritorio en GNOME usando scripts bash

Cuadros de entrada de Zenity

Con Zenity, puede crear cuadros de di√°logo simples que toman la entrada del usuario y la muestran como salida est√°ndar.

Aquí hay algunos cuadros de entrada:

Calendario

El cuadro de di√°logo Calendario muestra un calendario y devuelve la fecha seleccionada por el usuario como salida est√°ndar.

zenity --calendar
Output:
17/04/21

Entrada de calendario desde script bash

Cuadro de di√°logo de entrada de texto

Puede utilizar la opci√≥n –entry para crear un cuadro de di√°logo de entrada de texto. Es muy √ļtil cuando desea pedirle al usuario que ingrese alg√ļn texto.

zenity --entry --title "User Info" --text "Please enter your name"

Di√°logo de lista

Puede usar la opci√≥n –list para crear un di√°logo de varias columnas. Aqu√≠ debe ingresar Datos para el di√°logo de lista columna por columna, fila por fila. Puede usar la casilla de verificaci√≥n o rediobox con el cuadro de di√°logo de lista como se muestra a continuaci√≥n:

zenity --list  --title "Choose Processor" --radiolist  --column "ID" --column="Name" 1 AMD 2 Intel

Cuadro de di√°logo Lista

Tambi√©n puede dar casilla de verificaci√≥n con la opci√≥n –list para selecci√≥n m√ļltiple.

Opciones de casilla de verificación con bash

zenity --list --title "Packages" --list  --text "select packages you want to install" --checklist --column "id"  --column "Name" 1 "Google Chrome" 2 "VLC" 3 "Firefox" 4 "GIMP"
Output
Google Chrome|VLC|Firefox

Diálogo de selección de color

Puede usar la opci√≥n –color-selection para tomar el valor de selecci√≥n de color del usuario.

zenity --color-selection --show-palette

Selector de color del script Bash

Cuadro de diálogo de selección de archivos

Puede usar la opci√≥n –file-selection para capturar archivos o directorios seleccionados como salida est√°ndar. Tambi√©n puede guardar el archivo usando la opci√≥n –file-selection.

zenity --file-selection --multiple --filename "/"

Abrir cuadro de selección de archivo desde bash

Di√°logo de progreso

Puede crear una buena barra de progreso usando la opci√≥n –progress. Esto es √ļtil muchas veces, cuando desea mostrar al usuario la barra de progreso de finalizaci√≥n de su aplicaci√≥n o secuencia de comandos.

Debajo del comando que muestra la barra de progreso de la descarga.

(wget -r  --no-parent patch -A.tar.gz http://157.245.99.119/latest/ -P /tmp 2>&1 ) | sed -u 's/.* \([0-9]\+%\)\ \+\([0-9.]\+.\) \(.*\)/\1\n# Downloading at \2\/s, ETA \3/' | zenity --progress --title="Downloading File..." --percentage=1 --pulsate

Para obtener m√°s opciones de progreso, ejecute el siguiente comando en la terminal

zenity --help-progress

Para m√°s opciones de Zenity puedes usar hombre zenidad y Zenity –ayuda.

Conclusión

En la guía anterior, aprendió cómo puede escribir un script bash para mostrar cuadros de diálogo de GUI usando Zenity y hacer que el script Bash sea más fácil de usar. No dude en preguntarme si tiene alguna pregunta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *