universidad don bosco estudios tecnolÓgicos escuela de … · escuela de computaciÓn 2019 guia de...
TRANSCRIPT
-
UNIVERSIDAD DON BOSCOESTUDIOS TECNOLÓGICOS
ESCUELA DE COMPUTACIÓN
2019
GUIA DE LABORATORIO #8Nombre de la Practica: Manejo de Xdialog.Lugar de Ejecución: Laboratorio de Redes, Edificio 3 del CITTTiempo Estimado: 2:30MATERIA: Aplicaciones Para RedesDOCENTES: Marvin Martínez
I. OBJETIVOS
Que el estudiante:
Comprenda el manejo de las librerías. Pueda implementarlas según sus necesidad.
II. INTRODUCCION TEORICA
X-Dialog permiten el uso de ventanas y “cajas” para hacer la experiencia de interactuar con unprograma mas amena y mas fácil de entender por el usuario.Xdialog es un buen substituto de dialog , y pose numerosas opciones típicas en cualquier lenguaje,crear entradas de texto, lista de botones, botones de confirmación, diálogos yes-no, opción de abrirarchivo, texto editable, etc...Ten en cuenta que Xdialog es compatible con dialog pero no al revés, es decir, todos los scripts hechoscon dialog funcionarán con Xdialog, puesto que este último acepta todas las opciones de dialog ademásde ofrecer más funcionalidades. Un ejemplo es la ventana de menú, en dialog se llama "--menu" y en Xdialog "--menubox", aunqueXdialog también acepta la sintaxis de dialog e interpreta "--menu" como "--menubox". Es buena prácticapor tanto, usar "--menu" y así tus scripts podrán correr tanto en las X como en un terminal.
III. MATERIALES Y EQUIPO
Para la realización de la guía de práctica se requerirá lo siguiente:No. Requerimiento Cantidad
1 PC de escritorio con Linux 12 Guía de laboratorio 1
IV. PROCEDIMIENTO
Parta poder utilizar las cajas de texto y las opciones comunes, siempre tiene que anteponerse lapalabra dialog.
Digiter cada uno de los pasos que a continuación se presentan, interpretarlo y cualquier dudapreguntar al docente:1.Msgbox:
Aplicaciones Para Redes 1
-
Guía # 8: Manejo de Xdialog.
Utilizado para mandar un mensaje en la cual se terminara hasta que el usuario de aceptar.SYNOPSIS--msgbox text height width
Ejemplo 1 Ejemplo 2Xdialog --msgbox "Hola" 0 0 Xdialog --msgbox "Hola" 0 0;\
case $? in0)echo 0;;255)echo 255;;
esac#devuelve 0 si se da click en o.#devuelve 255 si se da click en la x.
Ejemplo 3 Resultado#!/bin/bashDIALOG=Xd|ialog$DIALOG --title "MESSAGE BOX" \
--icon warning.xpm \ --msgbox "Este es un mensaje con icono" 0 0case $? in 0) echo "OK";; 255) echo "Box closed.";;esac
2. Yesno:Utilizado para esperar una respuesta del usuario en la cual se espera que sea si ò en caso contrarionoSYNOPSIS--yesno
Ejemplo 1 Ejemplo 2Xdialog --title "Titulo" --yesno "¿Quieres salir dela aplicacion?" 0 0
#!/bin/bash Xdialog --title "Titulo" --yesno "¿Quieres salir dela aplicacion?" 0 0case $? in
0)echo 0;; 1)echo 1;; 255)echo 255;;
esac
Ejemplo 3 Ejemplo 4
Aplicaciones Para Redes 2
-
Guía # 8: Manejo de Xdialog.
Xdialog --title "Titulo" --help "Aqui va la Ayuda"--yesno "Quieres salir de la aplicacion" 0 0
#!/bin/bash Xdialog --title "Titulo" --help "Aqui va la Ayuda" --yesno "Quieres salir de la aplicacion" 0 0 case $? in
0)echo 0;; 1)echo 1;; 255)echo 255;;
esac
3. Infobox :Utilizado para mandar mensajes al usuario, que depende de un tiempo o hasta que se presiona OK.=tiempo para cerrar el infobox, tiempo en milisegundos.
SYNOPSIS--infobox []
Ejemplo1:Xdialog --infobox "Mensaje" 0 0 5000
4.inputbox:Utilizado para crear una caja de texto.=valor por defecto que aparecerá en la caja.SYNOPSIS --inputbox []
Ejemplo 1 Ejemplo 2Xdialog --backtitle "Titulo de fondo" --title"Titulo" --inputbox "Ingrese su nombre" 0 0"Rafael"
if Xdialog --backtitle "Titulo de fondo" --title"Titulo" --inputbox "Ingrese su nombre" 0 0"Rafael" 2>algothenecho "Valor que se encuentra en el archvivoalgo"cat algoelse
echo "Apretastes algo diferente de OK"fi
Ejemplo 3 Resultado#!/bin/bash
var=$(Xdialog --stdout --backtitle "Titulo defondo" --title "Titulo" --inputbox "Ingrese sunombre" 0 0 "Rafael")case $? in 0) echo "Valor ingresado: $var";; 1) echo "Presiono Cancelar";; 255) echo "Presiono en la \"x\" para cerrarla caja";;esac
Ejemplo4:
Aplicaciones Para Redes 3
-
Guía # 8: Manejo de Xdialog.
Solamente que utilizamos una de las opciones para que los caracteres se vean en forma deasteriscos.Xdialog --password --backtitle "Titulo de fondo" --title "Titulo" --inputbox "Ingrese sunombre" 0 0 "Rafael"
5. 2inputsbox:Utilizada para tener dos cajas de texto si se le agrega la opción de password, el password quedapor defecto a la ultima caja.
SYNOPSIS--2inputsbox
Ejemplo 1 Ejemplo2Xdialog --password --2inputsbox "Validacion de usuario" 0 0"Ingrese su nombre" "" "Ingrese su password" ""
if Xdialog --password --2inputsbox "Validacionde usuario" 0 0 "Ingrese su nombre" """Ingrese su password" "" 2>algothen echo "Valor que se encuentra en elarchvivo algo"
usuario=` cat algo | awk -F/ '{ print$1 }'`
password=` cat algo | awk -F/ '{ print$2 }'`
echo "Usuario:" $usuarioecho "Password:" $password
elseecho "Apretastes algo diferente de OK"
fi
Resultado en consola:Valor que se encuentra en el archvivo algoUsuario: RafaelPassword: Torres
Aplicaciones Para Redes 4
-
Guía # 8: Manejo de Xdialog.
Ejemplo 3 Resultado#!/bin/bashvar=$(Xdialog --stdout --password --2inputsbox"Validacion de usuario" 0 0 "Ingrese su nombre""" "Ingrese su password" "")
case $? in 0)usuario=$(echo $var | awk -F/ '{ print $1 }') password=$(echo $var | awk -F/ '{ print $2 }')
if [ -z $usuario ]thenXdialog --infobox "Debe de ingresar un usuario"0 0 5000 ./prueba.sh
fiif [ -z $password ]thenXdialog --infobox "Debe de ingresar unacontraseña" 0 0 5000./prueba.shfi
echo "Usuario:" $usuarioecho "Password:" $password;;
1) echo "Cancelar";; 255) echo "X";;esac
6. 3inputsbox:Utilizada para tener tres cajas de texto si se le agrega la opción de password, el password quedapor defecto a la ultima caja.
SYNOPSIS--3inputsbox
Xdialog --password --3inputsbox "Validacion deusuario" 0 0 "Ingrese su nombre" "" "Ingrese suapellido" "" "Ingrese su password" ""
if Xdialog --password --3inputsbox "Validacion deusuario" 0 0 "Ingrese su nombre" "" "Ingrese suapellido" "" "Ingrese su password" "" 2>algothen
echo "Valor que se encuentra en el archvivoalgo"
usuario=` cat algo | awk -F/ '{ print $1 }'`apellido=` cat algo | awk -F/ '{ print $2 }'`password=` cat algo | awk -F/ '{ print $3 }'`echo "Usuario:" $usuarioecho "Apellido:" $apellidoecho "Password: " $password
elseecho "Apretastes algo diferente de OK"
fi
Aplicaciones Para Redes 5
-
Guía # 8: Manejo de Xdialog.
7. Gauge : Sirve para crear una barra de progreso.
SYNOPSIS--gauge []
Ejemplo 1 Ejemplo 2(echo "25" ; sleep 3echo "50" ; sleep 3echo "75" ; sleep 3echo "100" ; sleep 3)| Xdialog --title "GAUGE" --gauge "...:::Instalando:::..."0 0 0
if [ "$?" = 255 ] ; thenecho "Box closed !"
fi
x=0(while [ $x -le 100 ]
do#comando de aplicacionecho $xx=$( expr $x + 25 )sleep 3
done) | Xdialog ---title "GAUGE" --gauge"...:::Instalando:::..." 0 0 0
Ejemplo 3 Resultado para los 3 ejemplo( for I in 25 50 75 100 do
echo $Isleep 3
done) | Xdialog --gauge "...:::Instalando:::..." 0 0 0
8.Textbox :Utilizado para leer un archivo.
SYNOPSIS--textbox
Ejemplo ResultadoXdialog --title "EDIT BOX" --textbox menu.sh 24 75 case $? in 0) echo "OK";; 1)echo "Cancel pressed.";; 255)echo "Box closed.";;esac
Aplicaciones Para Redes 6
-
Guía # 8: Manejo de Xdialog.
9.Editbox:Utilizado para leer una archivo y así poder editarlo y luego redireccionarlo cuando damos ok.
SYNOPSIS--editbox
Ejemplo ResultadoXdialog --title "EDIT BOX" --editbox menu.sh 24 752>algo
case $? in 0)cat algo echo "OK";; 1) echo "Cancel pressed.";; 255)echo "Box closed.";;esac
10.Menubox:Se utiliza para crear menús, se redirecciona a alguna archivo el cual contendrá el valor de la opciónseleccionada.
SYNOPSIS --menubox {}.Ejemplo1:Xdialog --menu "MENU" 10 30 3 1 red 2 greem 3 blue
Aplicaciones Para Redes 7
-
Guía # 8: Manejo de Xdialog.
Ejemplo 2 Ejemplo 3#!/bin/bashXdialog --menu "MENU" 10 30 3 1 red 2 green 3blue 2>algo.txt;\case $? in0) echo "Escogistes la opcion de aceptar" var=$(cat algo.txt) rm -f algo.txt case $var in 1) Xdialog --msgbox "Escogistes la opcion1: RED" 5 35;; 2) Xdialog --msgbox "Escogistes la opcion2: GREEN" 5 35;; 3) Xdialog --msgbox "Escogistes la opcion3: BLUE" 5 35;; esac ;;1) Xdialog --infobox "Escogistes la opcion decancelar" 8 45 5000;;esac
#!/bin/bashvar=$(Xdialog --stdout --menu "MENU" 10 30 3 1red 2 green 3 blue)case $? in0) echo "Escogistes la opcion de aceptar" case $var in 1) Xdialog --msgbox "Escogistes la opcion1: RED" 5 35;; 2) Xdialog --msgbox "Escogistes la opcion2: GREEN" 5 35;; 3) Xdialog --msgbox "Escogistes la opcion3: BLUE" 5 35;; esac ;;1) Xdialog --infobox "Escogistes la opcion decancelar" 8 45 5000;;esac
11.Buildlist:Utilizado para agregar aquellos item que se desean seleccionar.
SYNOPSIS --buildlist
Ejemplo 1 Ejemplo 2result=`Xdialog --title "XDIALOG BUILDLIST" --backtitle "A user-built list" \--stdout --separator "|" \--buildlist "hello, this is a --buildlist..." 0 0 6 \
"1" "Item n1" "on" \ "2" "Item n2" "off" \ "3" "Item n3" "on" \ "4" "Item n4" "on" \ "5" "Item n5" "off" \ "6" "Item n6" "on"`
retval=$?case $retval in 0) echo "The user-built list is '$result'.";; 1) echo "Cancel pressed.";; 255) echo "Box closed.";;esac
Xdialog --title "XDIALOG BUILDLIST" --backtitle "Auser-built list" \ --separator "|" \--buildlist "hello, this is a --buildlist..." 0 0 6 \
"1" "Item n1" "on" \ "2" "Item n2" "off" \ "3" "Item n3" "on" \ "4" "Item n4" "on" \ "5" "Item n5" "off" \ "6" "Item n6" "on" 2>algo.txt
case $? in 0) retval=`cat algo.txt` echo -n "The user-built list is " echo $retval;; 1) echo "Cancel pressed.";; 255) echo "Box closed.";;esac
Aplicaciones Para Redes 8
-
Guía # 8: Manejo de Xdialog.
Resultado:En consola se podra observar este resultado: The user-built list is 1|3|4|6
12.Checklist:Utilizado para que el usuario escoja varias opciones.Paramentros::texto :alto :ancho :altura de la listaSYNOPSIS--checklist
Ejemplo 1 Ejemplo 2Xdialog --backtitle "Checklist" --separator "|" \ --title "CHECKLIST BOX" \ --checklist "Escoja su equipo favorito" 0 05 \ "1" "Barcelona" on \ "2" "Sevilla" on \ "3" "Real Madrid" off \ "4" "Valencia" on \ "5" "Villareal" off \ "6" "Real Betis" off 2> algo.txtcase $? in 0) valores=`cat algo.txt` echo $valores;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Checklist";;esac
cheklist=`Xdialog --backtitle "Checklist" --separator "|" --stdout --title "CHECKLIST BOX" \ --checklist "Escoja su equipo favorito" 0 05 \ "1" "Barcelona" on \ "2" "Sevilla" on \ "3" "Real Madrid" off \ "4" "Valencia" on \ "5" "Villareal" off \ "6" "Real Betis" off `case $? in 0) echo $cheklist;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Checklist";;esac
Aplicaciones Para Redes 9
-
Guía # 8: Manejo de Xdialog.
Resultado:en consola de lo que tiene el archivo algo.txt1|2|4
->A partir del resultado deberá mostrar en una ventana de Xdialog los nombres de cada valorseleccionado.
13. Radiolist:Utilizado para que el usuario escoja varias opciones.Paramentros::texto :alto :ancho :altura de la listaSYNOPSIS --radiolist
Ejemplo1 Ejemplo 2radiolist=`Xdialog --backtitle "Radiolist" --stdout \--title "RADIOLIST BOX" \ --radiolist "Escoja su equipo favorito" 0 0 5 \ "1" "Barcelona" on \ "2" "Sevilla" on \ "3" "Real Madrid" off \ "4" "Valencia" on \ "5" "Villarreal" off \ "6" "Real Betis" off `
case $? in 0) echo $radiolist;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Radiolist";;esac
Xdialog --backtitle "Radiolist" \--title "RADIOLIST BOX" \ --radiolist "Escoja su equipo favorito" 0 0 5 \ "Barcelona" "Barcelona" on \ "Sevilla" "Sevilla" on \ "Madrid" "Real Madrid" off \ "Valencia" "Valencia" on \ "Villarreal" "Villarreal" off \ "Betis" "Real Betis" off 2>algo.txtcase $? in 0) radiolistt=`cat algo.txt` rm algo.txt echo $radiolistt;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Radiolist";;esac
Aplicaciones Para Redes 10
-
Guía # 8: Manejo de Xdialog.
Resultado de ejemplo2
->A partir del equipo seleccionado mostrar en una ventana que se mantenga activa durante 5segundos un mensaje que diga “Para mi este es el mejor equipo del mundonombre_equipo_seleccionado”.
14. Treeview:Utilizado para crear un menú tipo árbol.SYNOPSIS--treeview
Ejemplo Resultadoarbol=`Xdialog --stdout --title "TREE VIEW BOX" \
--treeview "treeview box demo" 1832 4 \
tag1 uno off 0 \ tag2 uno_1 on 1 \ tag3 uno_1_1 off 2 \ tag4 dos off 0 \ tag5 dos_1 off 1 \ tag6 dos_1_1 off 2 \ tag7 dos_2 off 1 \ tag6 dos_2_1 off 2 \
tag6 dos_2_1_1 off 3 \ tag6 dos_2_1_2 off 3`
case $? in0)
echo "$arbol";;1)
echo "Presionaste cancelar";;255)
echo "Cierre de la caja";;esac
Aplicaciones Para Redes 11
-
Guía # 8: Manejo de Xdialog.
->Crear una ventana que se que se vea como la siguiente y al seleccionar un sistema operativomostrar el resultado en otra ventana.
15.Combobox
SYNOPSIS--combobox ...
Ejemplo Resultadocombobox=`Xdialog --backtitle "Combobox" --stdout \--title "COMBOBOX" \ --combobox "Escoja su equipo favorito" 0 0 \ Barcelona \ Sevilla\ "Real Madrid"\ Valencia\ Villarreal\ "Real Betis"`
case $? in 0) echo $combobox;; 1) echo "Presinastes cancelar";; 255) echo "Cierre de Radiolist";;esac
Aplicaciones Para Redes 12
-
Guía # 8: Manejo de Xdialog.
->Crear un combobox el cual contenga cuatro materias técnicas de la carrera, las que mas legusten al seleccionar una mostrar en otra ventana el resultado.16. Rangebox SYNOPSIS --rangebox []
Ejemplo ResultadoVOLUME=`Xdialog --stdout --title "RANGE BOX" –rangebox \ "fijar el volumen" 0 0 0 12 6`
case $? in 0) echo "El volumen es de: $VOLUME.";; 1) echo "Presionastes cancelar";; 255) echo "Cierre de la caja";;esac
17. 2RangesboxSYNOPSIS--2rangesbox
Ejemplo ResultadoVOLUME=`Xdialog --stdout --separator " " --title "RANGE BOX" --2rangesbox "Escoja los volumenes" 0 0 "Volumen1" 0 12 6 "Volumen2"1 6 3`
case $? in 0) echo "El volumen es de: $VOLUME.";; 1) echo "Presionastes cancelar";; 255) echo "Cierre de la caja";;esac
18. FselectUtilizado para seleccionar archivos.SYNOPSIS--fselect
EjemploXdialog --fselect /root/Desktop/ 0 0
Aplicaciones Para Redes 13
-
Guía # 8: Manejo de Xdialog.
19. DselectUtilizado para seleccionar directorios
SYNOPSIS --dselect
Ejemplo:Xdialog --dselect / 0 0
20. ColorselSYNOPSIS --colorsel [ ]Ejemplo:Xdialog --colorsel "Colores" 0 0
Salida en consola: 255 255 255
21. Calendar SYNOPSIS--calendar [ ]
EjemploXdialog --calendar "Calendario" 0 0 19 2 1986
Salida de en Consola:19/02/1986
Aplicaciones Para Redes 14
-
Guía # 8: Manejo de Xdialog.
22. TimeboxSYNOPSIS--timebox [ ]
EjemploXdialog --timebox Tiempo 0 0 12 4 5
Salida en consola: 01:02:06
23.SpinboxSYNOPSIS--spinbox
EjemploXdialog --title "Titulo de la ventana" --spinbox "¿Qué nota le das a esta charla" 0 0 1 10 01 "Nota"
De forma similar a la opción inputbox, existen también –2rangesbox, –3rangesbox, –2spinsbox y –3spinsbox.
Formato de Botones
Xdialog --buttons-style icon --yesno "Desea salir de la aplicacion" 0 0
Xdialog --buttons-style text --yesno "Desea salir de la aplicacion" 0 0
Aplicaciones Para Redes 15
-
Guía # 8: Manejo de Xdialog.
Xdialog --ok-label Aceptar --cancel-label Cancelar --yesno "Desea salir de la aplicacion" 0 0
Xdialog --no-buttons --infobox "Desea salir de la aplicacion" 0 0 5000
Xdialog --no-close --menu "Menu" 0 0 3 1 "Tabla de Multiplicar" 2 "Factorial" 3 Salir(Desactivamos la x de salida, aunque se de click no responderá)
V. DISCUSION DE RESULTADOS
->Crear un programa que simule a una agenda, la cual permitirá-Agregar contacto-Eliminar contacto-Buscar contacto-Eliminar contacto
La opción de Agregar contacto deberá solicitar un nombre corto, el nombre completo y su correoelectrónico.La opción de Eliminar contacto permitirá eliminar un contacto ingresando el nombre corto delcontacto.La opción Buscar contacto permitirá buscar el contacto por medio de su nombre corto.La opción eliminar contacto eliminara el contacto por medio de su nombre corto.Debe existir un opción que permitirá ver todos los contactos.Debe existir una opción de salir.Nota: el programa deberá terminar únicamente con la opción salir, si da click en la “X” esta nodeberá hacer nada, esto debe ser en todas las ventanas.
->Crear un script el cual solicitara el nombre de un archivo, luego pedirá los permisos (rwx) deldueño, permisos (rwx) del grupo y los permisos (rwx) de los demás usuarios y por ultimo deberámostrar los permisos del archivo, el script deberá estar validado en todo aspecto por ejemplo si sele pasa un directorio y no un archivo regular mostrar un mensaje de error.
->Crear un script que me permita llamar a cada uno de los ejemplos por medio de una ventana demenú de Xdialog, el programa deberá mantenerse activo y deberá terminar solo cuando el usuariole de click al botón de salir del menú principal, caso contrario se mantendrá activo.
Aplicaciones Para Redes 16
UNIVERSIDAD DON BOSCOESTUDIOS TECNOLÓGICOSESCUELA DE COMPUTACIÓN