Zenity: crea cuadros de diálogo gráficos (GTK +) en scripts de línea de comandos y shell


GNU Linux, el sistema operativo construido sobre un núcleo muy poderoso llamado Linux. Linux es famoso por sus operaciones de línea de comandos. Con el invento de Linux en el día a día y la computación de escritorio, nix permanece más sesgado hacia la línea de comandos, es igualmente gráfico y el desarrollo de aplicaciones gráficas no sigue siendo una tarea difícil.

Aquí, en este artículo, discutiremos la creación y ejecución de un cuadro de diálogo gráfico simple usando la aplicación GTK + llamada "Zenity".

¿Qué es Zenity?

Zenity es una aplicación de código abierto y multiplataforma que muestra cuadros de diálogo GTK + en la línea de comandos y utilizando scripts de shell. Permite solicitar y presentar información a/desde shell en cuadros gráficos. La aplicación le permite crear cuadros de diálogo gráficos en la línea de comandos y facilita la interacción entre el usuario y el shell.

Hay otras alternativas, pero nada se compara con la simplicidad de Zenity, especialmente cuando no necesitas una programación compleja. Zenity, una herramienta que debes tener en tus manos.

  1. FOSS Software
  2. Cross Platform Application
  3. Allow GTK+ Dialog Box Execution
  4. Command Line Tool
  5. Support in Shell Scripting
  1. Easy GUI Creation
  2. Less features than other complex Tools
  3. Enables shell scripts to interact with a GUI users
  4. Simple dialog creation is possible for graphical user interaction

Dado que Zenity está disponible para todas las plataformas principales conocidas, y se basa en la biblioteca GTK +, el programa Zenity se puede migrar hacia/desde otra plataforma.

Instalación de Zenity en Linux

Zentity está instalado o disponible de forma predeterminada en el repositorio de la mayor parte de la distribución estándar de Linux actual. Puede verificar si está instalado en su máquina o no ejecutando los siguientes comandos.

[email protected]:~$ zenity --version 

3.8.0
[email protected]:~$ whereis zenity 

zenity: /usr/bin/zenity /usr/bin/X11/zenity /usr/share/zenity /usr/share/man/man1/zenity.1.gz

Si no está instalado, puede instalarlo usando el comando Apt o Yum como se muestra a continuación.

[email protected]:~$ sudo apt-get install zenity		[on Debian based systems]

[email protected]:~# yum install zenity				[on RedHat based systems]

Además, también puede compilarlo a partir de los archivos fuente, descargar el último paquete fuente de Zenity (es decir, la versión actual 3.8) usando el siguiente enlace.

  1. http://ftp.gnome.org/pub/gnome/sources/zenity/

Cuadros de diálogo de Zenity Basic

Algunos de los diálogos básicos de Zenity, que se pueden invocar directamente desde la línea de comandos.

[email protected]:~# zenity --calendar
[email protected]:~# zenity --error
[email protected]:~# zenity --entry
[email protected]:~# zenity --info
[email protected]:~# zenity --question
[email protected]:~# zenity --progress
[email protected]:~# zenity --scale
[email protected]:~# zenity --password
[email protected]:~# zenity --forms
[email protected]:~# zenity --about

Diálogo Crear script de shell

Ahora estaríamos discutiendo la creación de Zenity Dialog usando simples scripts de shell aquí. Aunque podemos crear un único diálogo ejecutando comandos de Zenity directamente desde el shell (como hicimos anteriormente), no podemos vincular dos cuadros de diálogo para obtener un resultado significativo.

¿Qué tal un cuadro de diálogo interactivo que toma información de usted y muestra el resultado?

#!/bin/bash 
first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry) 
zenity --info --title="Welcome" --text="Mr./Ms. $first" 
last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry) 
zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

Guárdelo en "cualquier cosa.sh" (convencionalmente) y no olvide hacerlo ejecutable. Establezca el permiso 755 en el archivo anything.sh y ejecute el script.

[email protected]:~# chmod 755 anything.sh 
[email protected]:~# sh anything.sh

El shebang convencional también conocido como hashbang

#!/bin/bash

En la línea siguiente, "primero" es una variable y el valor de la variable se genera en tiempo de ejecución.

    1. –entry‘ means zenity is asked to generate an text Entry box.
    2. – title=‘ defines the title of generated text box.
    3. —text=‘ defines the text that is available on text Entry box.
    first=$(zenity --title="Your's First Name" --text "What is your first name?" --entry)

    Esta línea del archivo de secuencia de comandos a continuación es para la generación del cuadro de diálogo de información (–info), con el título "Bienvenido" y el texto "Sr./Sra. Primero"

    zenity --info --title="Welcome" --text="Mr./Ms. $first"

    Esta línea del script es similar a la línea número dos del script, excepto que aquí se define una nueva variable "última".

    last=$(zenity --title="Your's Last Name" --text "$first what is your last name?" --entry)

    Esta última línea del script es nuevamente similar a la tercera línea del script y genera un cuadro de diálogo de información que contiene tanto las variables "" y "".

    zenity --info --title="Nice Meeting You" --text="Mr./Ms. $first $last"

    Para obtener más información sobre cómo crear cuadros de diálogo personalizados utilizando un script de shell, visite la siguiente página de referencia de Zenity.

    1. https://help.gnome.org/users/zenity/stable/

    En el próximo artículo integraremos Zenity con más script de shell para la interacción del usuario de la GUI. Hasta entonces, estad atentos y conectados a Tecmint. No olvide dar sus valiosos comentarios en la sección de comentarios.