PAD3501_Semana8

Anuncio
Escuela de Informática y Telecomunicaciones
SEMANA N° 8
NOMBRE EXPERIENCIA: Control del flujo en BASH
UNIDAD DE APRENDIZAJE: Introducción a los SCRIPTS
I.
Objetivo
Que el alumno tenga una idea general de las posibilidades que BASH ofrece para la elaboración y
ejecución de shell scripts y las potencialidades de los mismos en la resolución de problemas
prácticos.
II.
Conocimientos previos
El control del flujo es la manera que tiene un lenguaje de programación (cualquiera) de provocar
que el flujo de la ejecución avance y se ramifique en función de los cambios de estado de los
datos.
Controlar el flujo es determinar el orden en el que se ejecutarán las instrucciones en nuestros
programas. Si no existiesen las sentencias de control entonces los programas se ejecutarían
básicamente de manera secuencial, una instrucción tras otra.
El BASH de GNU/LINUX soporta dos tipos de sentencias de CONTROL DEL FLUJO:
SENTENCIAS CONDICIONALES, como por ejemplo: if-then,if-then-else y case, y SENTENCIAS
ITERATIVAS, como por ejemplo: while, for, until.
III.
Requerimientos técnicos
Para esta actividad basta con un PC con LINUX por alumno o en grupo de máximo dos
alumnos por PC, opcionalmente acceso a Internet.
IV.
Desarrollo de la Actividad
La siguiente actividad está centrada en la profundización de los conceptos generales
relativos a la elaboración, ejecución y depuración de Shell scripts, así como de las
posibles aplicaciones de estos a problemas relativos a usuarios y a la administración del
sistema.
Ud. deberá profundizar acerca de las principales características del intérprete de
comandos BASH en el contexto de la realización de operaciones aritméticas básicas y
avanzadas sobre datos provenientes desde la entrada estándar o desde archivos.
También, y principalmente, en la profundización de los conceptos básicos de Shell
scripting, la codificación y ejecución de Shell scripts, la depuración de los Shell scripts
previamente codificados, así como la aplicación de estos a problemas prácticos.
Algunas de las preguntas y/o actividades planteadas pueden responderse con la
documentación ofrecida en el material teórico de la asignatura, otras, sin embargo,
requieren que Ud. Investigue, para esto último será usual que se le ofrezcan links a
1
Escuela de Informática y Telecomunicaciones
páginas web, esquemas o dibujos, diagramas, tablas, documentación complementaria,
etc.
Shell scripts
1.-
Escriba un script Shell que después de ejecutarse permita que cada 90 minutos se
presente en pantalla el mensaje "Hacer tareas" (indic.: usar while true, sleep, 90
minutos equivalen a 540 segundos y ejecutar el script en segundo plano).
#!/bin/bash
while true
do
echo –e “Hacer tareas\n”
sleep 540
done
Suponiendo que Ud. dio el nombre de mensaje al script, debería ejecutarse como
$./mensaje&
2.-
Escriba un script Shell que después de ejecutarse permita verificar cada 30
segundos si existe en el directorio actual un archivo llamado prueba.txt (indic.:
para probar este script es necesario ejecutarlo en segundo plano)
2
Escuela de Informática y Telecomunicaciones
3.-
Escriba un script Shell que después de ejecutarse permita pedir al usuario un
nombre de archivo, luego presente en pantalla el contenido del archivo (usar cat o
more) si este es un archivo regular (u ordinario), y si el archivo en cuestión es un
directorio, el listado del mismo (usar ls). Informar en pantalla si es que el archivo
no se corresponde con un archivo regular o directorio.
#!/bin/bash
clear
echo –e “Ingrese el nombre de un archivo: \c”
read arch
if test –f $arch
then
more $arch
else
if test –d $arch
then
ls –l $arch
else
echo –e “$arch no es archivo ni directorio…\n”
fi
fi
4.-
Escriba un script Shell que después de ejecutarse permita pedir al usuario un
nombre de archivo, luego presente en pantalla si el archivo en cuestión existe y es
ejecutable.
3
Escuela de Informática y Telecomunicaciones
5.-
Escriba un script Shell que después de ejecutarse permita visualizar en pantalla un
menú de tres opciones, la primera opción para borrar un archivo leído desde
teclado, la segunda opción para visualizar un archivo también leído desde teclado
y la tercera opción para terminar la ejecución del programa.
6.-
Escriba un script Shell que después de ejecutarse permita pedir al usuario un
nombre de archivo valido (es decir, un archivo ya existente) y un nombre de
directorio valido. Luego el script debe permitir copiar el archivo en el directorio
especificado.
4
Escuela de Informática y Telecomunicaciones
7.-
Escriba un script Shell que después de ejecutarse permita desplegar en pantalla
un menú usando la sentencia select y que posibilite la ejecución del escritorio
(KDE o GNOME) que el usuario desee.
La siguiente actividad requiere que Ud. elabore y pruebe el script que a
continuación se le pide, una vez terminado y probado documéntelo en su cuaderno
y pídale a su profesor que lo revise.
7.-
Escriba un script Shell que después de ejecutarse presente en pantalla un menú y
opciones de menú adecuadas que permitan simular una agenda telefónica, como
tal, el script deberá permitir gestionar una libreta de direcciones (Agenda) y se
deberán implementar las siguientes funcionalidades: añadir registros o datos a la
agenda, buscar registros o datos en la agenda, borrar registros o datos de la
agenda, y por último, se deberá permitir la edición/modificación de los registros o
datos de la agenda.
5
Escuela de Informática y Telecomunicaciones
6
Escuela de Informática y Telecomunicaciones
Existen una buena cantidad de sitios desde donde Ud. puede obtener información acerca
de la programación en BASH, a modo de ejemplo, puede consultar:
 http://es.tldp.org/COMO-INSFLUG/COMOs/Bash-Prog-Intro-COMO/Bash-Prog-IntroCOMO.html
 http://www.tldp.org/LDP/abs/html/index.html
 http://www.gentoo.org/doc/es/articles/bash-by-example-p1.xml
 http://doc.gulo.org/docu/bashavanzado.pdf
V.


Resumen
Con esta experiencia aprendiste a elaborar y ejecutar Shell scripts básicos.
Aplicaste los Shell scripts en la resolución de problemas prácticos de usuarios y
relativos a la administración del sistema.
7
Descargar