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.