Entonces eres un usuario GNU/Linux que le interesa mucho el mundillo de codear scripts shells para realizar distintas tareas programadas....y te gustaria que otros usuarios noveles puedan utilizar tus shells scripts, sin necesidad de entremezclarse en una ventanita de una terminal cutre y colocar parametros y demanes...en su lugar te gustaria que el usuario o tu mism@ al ejecutar tu shell script aparezca una ventana grafica con todas las instrucciones deseadas por ti, sin necesidad de llegar a una complejidad como que te conozcas la API completa de widgets QT o GTK u otro. Bien, Zenity es una utilidad basica que te puede servir para portar tus scripts shells a un nivel grafico y amistoso.
![Convierte Tus Shell Scripts En Ventanas Graficas Convierte Tus Shell Scripts En Ventanas Graficas](https://help.gnome.org/users/zenity/stable/figures/zenity-information-screenshot.png.es)
Que es Zenity? Seguramente te estaras preguntando a estas alturas. Zenity no es mas que una aplicacioncita basica que sirve para generar ventanas de dialogos dando uso de la biblioteca GTK+. Obviamente no podras armarte un proyecto empresarial completo dando uso solo de Zenity, para esto ultimo requeriras algo mas completo como la API GTK, sin embargo, sin desestimar la importancia de Zenity, con Zenity puedes crear :
- Calendarios.
- Texto de entrada.
- Mensajes de error, información y advertencia.
- Selección de archivos.
- Listas.
- Ícono en el área de notificación (bandeja del sistema).
- Barra de progreso.
- Pregunta al usuario, dando la posibilidad de responder aceptar ó cancelar.
- Solicitar nombre de usuario y contraseña.
- Textos largos.
- Registro de escala.
- Formularios.
- Selección de color.
Todos en una ventana grafica que perfectamente puedes incluir o portar dentro de tu codigo shell.
![](https://help.gnome.org/users/zenity/stable/figures/zenity-warning-screenshot.png)
Zenity
es una herramienta de GNOME que podemos descargar desde este enlace,
pero que está en los repositorios de algunas distribuciones y en otras
como Ubuntu ya está instalado por defecto.
Veamos algunos ejemplos de lo que podemos hacer con Zenity. Para ello abrimos nuestro terminal y tecleamos lo siguiente:
zenity --calendar
zenity --password --username
zenity --scale
zenity --width=360 --height=320 --list --title "Ejemplo" --column file "Visita LinuxZone"
zenity --question --width=350 --height=120 --title "El sistema encontró un error critico" --ok-label="Definitivamente"
--cancel-label="Sí" --text "Windows se encuentra instalado en su disco. ¿Desea desinstalarlo?" ; echo $
Por supuesto esto solo es el marco, lo que queremos que aparezca dentro eso ya depende de nosotros. Por ejemplo, vamos a crear
en unos pocos pasos un lanzador con tres sencillas funciones, que nos
abra una aplicación, que nos abra una carpeta y que nos lleve a una
página web, con la ayuda del comando xdg-open. Abre un editor y escribe
lo siguiente:
#!/bin/bash
file=$(zenity –width=360 –height=320 –list –title “Lanzador” –column Acciones “Abrir Gedit” “Abrir carpeta Música” “Ir a LinuxZone”)
if [ "$file" = "Abrir Gedit" ]; then
/usr/bin/gedit
elif [ "$file" = "Abrir carpeta Música" ]; then
xdg-open ~/Música/
elif [ "$file" = "Ir a LinuxZone" ]; then
xdg-open http://www.linuxzone.es/
else
exit 0
fi
Le ponemos el nombre que queramos, seguido de la extensión .sh y le damos permisos de ejecución
Como vemos, tan solo hay que seleccionar una de las opciones y le damos a aceptar para que la ejecute.
Pero tal vez no te guste ese dialogo y prefieras una pantalla de
selección en la que puedas abrir varias opciones de golpe, pues nada más
sencillo, solo tenemos que añadir otra columna y la función –checklist,
que podemos ponerla marcada (TRUE) o desmarcada (FALSE) por defecto:
#!/bin/bash
file=$(zenity –width=360 –height=320 –title “Lanzador” –list –column=”" –column=”Acciones” –checklist FALSE “Abrir Gedit” FALSE “Abrir carpeta Música” TRUE “Ir a LinuxZone”)
if [ "$file" = "Abrir Gedit" ]; then
/usr/bin/gedit
elif [ "$file" = "Abrir carpeta Música" ]; then
xdg-open ~/Música/
elif [ "$file" = "Ir a LinuxZone" ]; then
xdg-open http://www.linuxzone.es/
else
exit 0
fi
Diálogo de progreso
Use la opción --progress para crear un diálogo de progreso.
Zenity lee línea por línea los datos desde la entrada estándar. Si
una línea se antepone con #, el texto se actualiza con el texto en esa
línea. Si una línea contiene solamente un número, el porcentaje se
actualiza con ese número.
El diálogo de progreso soporta las siguientes opciones:
--text=texto
Especifica el texto que se muestra en el diálogo de progreso.
--percentage=porcentaje
Especifica el porcentaje inicial que se establece en el diálogo de progreso.
--auto-close
Cierra el diálogo de progreso cuando se ha alcanzado 100%
--pulsate
Especifica que la barra de progreso pulse hasta que se lea un carácter EOF desde la entrada estándar.
El siguiente script de ejemplo muestra cómo crear un diálogo de progreso:
#!/bin/sh
(
echo "10" ; sleep 1
echo "# Actualizando los registros de los correos" ; sleep 1
echo "20" ; sleep 1
echo "# Reiniciando las tareas de cron" ; sleep 1
echo "50" ; sleep 1
echo "Esta linea se ignorará" ; sleep 1
echo "75" ; sleep 1 echo "# Reiniciando el sistema" ; sleep 1 echo "100" ; sleep 1
) |
zenity --progress
title="Actualizando los registros del sistema"
text="Rastreando los registros de los correos..."
percentage=0
if [ "$?" = -1 ] ; then
zenity --error
text="Actualización cancelada."
fi
Diálogo de Advertencia
Use la opción --warning para crear un diálogo de advertencia.
El siguiente script de ejemplo muestra cómo crear un diálogo de advertencia:
#!/bin/bash
zenity --warning
--text="Desconecte el cable de eléctrico para evitar un shock eléctrico."
Diálogo de Error
Use la opción --error para crear un diálogo de error.
El siguiente script de ejemplo muestra cómo crear un diálogo de error:
#!/bin/bash
zenity --error
--text="No se pudo encontrar /var/log/syslog."
Diálogo de Pregunta
Use la opción --question para crear un diálogo de pregunta.
El siguiente script de ejemplo muestra cómo crear un diálogo de pregunta:
#!/bin/bash
zenity --question
--text="¿Está seguro de que quiere continuar?"
Si quieres conocer mas sobre el manejo y funcionamiento de Zenity, ingresa a la web oficial del manual:
Parte de la informacion aqui expuesta se encuentra
AQUI
No hay comentarios:
Publicar un comentario