Ads 468x60px

jueves, 18 de abril de 2013

Convierte Tus Shell Scripts En Ventanas Graficas

Convierte Tus Shell Scripts En Ventanas Graficas

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

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.
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