Cómo hacer scripts de shell gráficos simples con Zenity en Linux

Zenity agrega interfaces gráficas a los scripts de shell con un solo comando. Los scripts de Shell son una excelente manera de automatizar tareas repetitivas, pero normalmente se limitan al terminal: Zenity los saca del terminal y los coloca en su escritorio.

Zenity agrega interfaces gráficas a los scripts de shell con un solo comando. Los scripts de Shell son una excelente manera de automatizar tareas repetitivas, pero normalmente se limitan al terminal: Zenity los saca del terminal y los coloca en su escritorio.

Hemos dado una introducción a los scripts de shell en el pasado. No es necesario ser un programador para comenzar con los scripts de shell: requieren poco más que conocimientos de comandos de terminal de Linux.

Obteniendo Zenity

Zenity viene con Ubuntu por defecto. Si usa un derivado de Ubuntu, como Kubuntu, puede que tenga que instalarlo manualmente con el siguiente comando:

sudo apt-get install zenity

Zenity es parte de GNOME, por lo que ya debería estar incluido en las distribuciones de Linux que usan el escritorio GNOME. Verifique su administrador de paquetes para el paquete zenity si no lo tiene.

Usando Zenity

Puedes jugar con Zenity desde la terminal. Supongamos que desea crear una ventana de error cuando se produce un problema con su script de shell. Aquí hay un comando de ejemplo que podría usar:

zenity –error –title = «Se produjo un error» –text = «Se produjo un problema al ejecutar el script de shell».

Ejecute el comando y verá una ventana con el mensaje.

Coloque este comando único en su script de shell en el lugar correcto y obtendrá un mensaje de error gráfico. También podría usar variables para incluir más información sobre el error.

Digamos que quieres hacer una pregunta de sí o no. Podrías usar un comando como este:

zenity –question –title = «Query» –text = «¿Desea ejecutar el script?»

Puede captar la respuesta sí o no en su script de shell y ejecutar diferentes comandos según el botón que haga clic el usuario.

También hay un cuadro de diálogo de entrada de texto:

zenity –entry –title = ”Sitio web favorito” –text = ”¿Cuál es su sitio web favorito?”

Capture la entrada del usuario en un script de shell y puede almacenarlo como una variable.

También hay un selector de archivos, calendario y otros tipos de cuadros de diálogo. Para obtener una lista completa de los tipos de diálogo y sus opciones, consulte la página del manual de Zenity.

Un guión de ejemplo

Intentemos usar Zenity para crear un script de shell gráfico simple. Con solo tres comandos, podemos crear un programa de temporizador gráfico:

#!/bin/bash
# Este script le pide al usuario un tiempo, espera la cantidad especificada
# de tiempo, y muestra un diálogo de alerta.

TIME = $ (zenity –entry –title = ”Timer” –text = ”Ingrese una duración para el temporizador. \ N \ n Use 5s por 5 segundos, 10m por 10 minutos o 2h por 2 horas”.)

dormir $ TIEMPO

zenity –info –title = «Timer Complete» –text = «El temporizador ha terminado. \ n \ n Ha pasado $ TIME».

Estamos usando algunos trucos adicionales aquí. Obtenemos el valor de la variable TIME del primer comando zenity y lo alimentamos al comando sleep. También estamos usando /n para crear nuevas líneas de texto en los cuadros de diálogo de zenity.

Después de guardar el script de shell y ejecutar el comando chmod + x en él para darle permisos ejecutables, podemos iniciarlo.

Ingrese una duración y la secuencia de comandos utilizará el comando estándar suspensión para realizar una cuenta regresiva en segundo plano. Cuando finalice el temporizador del comando de suspensión, el script mostrará el mensaje de información de zenity.

Puede crear un acceso directo de escritorio o panel para este script y ejecutarlo sin siquiera tocar el terminal.

Esto solo está rascando la superficie de lo que podrías hacer con zenity; podrías usarlo para hacer programas mucho más complicados. Si está buscando más información sobre las secuencias de comandos de shell, consulte nuestra guía para usar bucles for en secuencias de comandos de shell.

Rate article
labsfabs.com
Add a comment