martes, 20 de noviembre de 2012

Curso scripting bash GUI

Esta es la ultima parte de nuestros tutoriales para aprender un poco de bash y el shell scripting :(,pero lo que vamos a ver es algo de lo mas avanzado aunque lo que les voy a mostrar no lo sea.


Se trata de crear GUI's para programas,esto depende mucho ya que hay de GUI's a GUI's



Puede haber simples menús desde la misma consola:

#!/bin/bash
clear
while :
do
echo -e "\e[1;35mMenu de Prueba\e[0m"
echo "Selecciona una opcion "
echo "1. Netstat"
echo "2. Informacion del HDD"
echo "3. Mi kernel"
echo "4. Salir"
echo -n "Selecciona una opcion {1,4} : "
read opcion
case $opcion in
 1) echo "Informacion net :"
           netstat
 ;;
          2) echo "Informacion de disco :"
  df
  ;;
 3) echo "Tu kernel es :"
  uname 
  ;;
 4) 
  echo "Hasta luego"
  echo "Saliendo..."
  sleep 3;
           exit 1; 
  ;;
          *) 
 echo "Opcion incorrecta"
         sleep 2;
 clear
 ;;
esac
done



O hasta lo que dice su nombre que es graphical user interface(GUI),interfaz gráfica para el usuario



Les puse de ejemplo zenmap ya que es una GUI de nmap

Y esto es en teoría una interfaz gráfica para una función que este programada,ya sea en Gtk,Qt,etc

Esto se puede ir hasta el uso de Gtk+ o Glade o también simplemente usar yad o zenity

En el caso de este tutorial solo veremos zenity,ya que es lo mas básico y esta muy bien apoyado en lo que hemos aprendido,ademas yad no esta para todas las distribuciones o no se instala tan fácil y en el caso de gtk,tampoco ya que seria gtkdialog y en muchas que he probado no esta en los repositorios.

En el caso de Gtk usando Gtkdialog luce así

#! /bin/bash

export MAIN_DIALOG='
<window title="Hola Mundo!!!" resizable="false" icon-name="computer">
 <vbox>
  <text>
    <label>Hola Mundo Gtk</label>
  </text>
  <hbox>
   <button ok></button>
   <button cancel></button>
  </hbox>
 </vbox>
</window>
'
gtkdialog --program=MAIN_DIALOG



No es muy dificil,ya que solo se abren y se cierran etiquetas,como si fuese html,pero hacen falta ver algunas cosas mas para entender mejor el funcionamiento.

GUI con zenity,primero que nada instalen zenity

solo añadan zenity al comando de su distribución

paquete="zenity"


apt-get install $paquete


pacman -S $paquete


etc

Primer programa

En zenity,zenity cuenta con muchas funciones que nos facilitan bastante la programación de una GUI en Gtk,por ejemplo para hacer el Hola mundo con zenity solo basta con poner esto en terminal

 zenity --info --title="Hola mundo" --text="Hola Mundo zenity"

Y listo,ahora esto en un script se aplica así

#!/bin/bash

zenity --info --title="Hola mundo" --text="Hola Mundo zenity"

Y ejecuten

Solo den permisos 775 o  al script

chmod +x hola-script.sh


Y como bash administra sus procesos como sistema solo lo puedes ejecutar desde nautilus por ejemplo(sin abrir terminal)

Ahora esto para que sirve?

zenity tiene muchas opciones y solo basta verlas con

zenity --help

Para que nos demos cuenta.

Si usamos zenity por separado no sirve de mucho,pero si lo unimos con bash(if,variables,case,etc) si, por ejemplo

Vean este programa

#!/bin/bash

: ${palabra=`zenity --entry --title='Prueba' --text='Escribe Algo:'`}

echo "Escribiste ${palabra}"

Este lo que hace es tomar lo que se ha introducido en el entry de la ventana y la devuelve en la terminal







Este ejemplo se puede usar en algo mas grande,por ejemplo en tbashconverter:

Enlace

Vean el código, y toda la GUI se basa en zenity.

Eso es todo lo que respecta a la GUI de zenity,no les puedo mostrar mas ejemplos porque eso ya depende de que quieran programar.

Mas que nada de lo que se trata es leer la documentación de las distintas opciones que podemos usar kdialog,gtk dialog,xdialog,zenity,etc  y redirigir la GUI a las funciones que queramos realizar con el programa con lo que hemos visto,que es

Variables

Bucles

Estructuras selectivas

Funciones y rutinas

Variables especiales

Operaciones aritméticas

etc

Eso es todo sobre introducción a bash :D

Documentación de zenity

http://library.gnome.org/users/zenity/stable/usage.html.es

Ejemplos de Gtk dialog

http://xpt.sourceforge.net/techdocs/language/gtkdialog/gtkde02-GtkdialogExamples/

Ejemplos kdialog

http://dns.bdat.net/kdephp/x51.html

xdialog

http://xdialog.free.fr/

No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.