Estructuras de Control - Pagina del servidor yaqui

Anuncio
Estructuras de Control
Cecilia Curlango Rosas
Estructuras de Control
Sintáxis -- while -Ejecuta una serie de mandos mientras sea verdadera
una condición.
while condición do
enunciados
done
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo -- while -#!/bin/bash
echo "Adivina mi animal favorito?"
read animal
while [ "$animal" != "delfin" ]; do
echo "Lo siento, vuelve a intentarlo"
read animal
done
echo "Bieeeeeeen, el $animal es mi favorito"
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo -- while -- (Sustitución Aritmética)
#!/bin/bash
repeticion=1
while [ "$repeticion" -le 20 ]
do
echo "Otra vez"
repeticion=$(($repeticion+1))
done
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Sintáxis -- until -El ciclo until similar a while pero con la condición inversa. En
otras palabras, el ciclo continua hasta que la condición se haga
verdadera.
until condición
do
enunciados
done
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo -- until -#!/bin/bash
until who | grep "$1" > /dev/null
do
sleep 60
done
# anunciar la llegada del usuario
echo -e \\a
echo "***** $1 acaba de conectarse *****"
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Sintáxis -- case -Compara la variable con varios patrones y ejecuta diferentes
enunciados dependiendo del patrón que concordó.
case variable in
patrón [ | patrón] ...) enunciados;;
patrón [ | patrón] ...) enunciados;;
...
esac
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo -- case -#!/bin/bash
echo "Es de dia? Contesta si o no"
read esDia
case "$esDia"
"si") echo
"no") echo
"s" ) echo
"n" ) echo
*
) echo
esac
exit 0
Cecilia Curlango Rosas
in
"Buenos dias";;
"Buenas tardes";;
"Buenos dias";;
"Buenas tardes";;
"Lo siento, no entiendo";;
Estructuras de Control
Ejemplo -- case -#!/bin/bash
echo "Es de dia? Contesta si o no"
read esDia
case "$esDia" in
"si" | "s" | "Si" | "SI")
"n"* | "N"*)
*
)
esac
exit 0
Cecilia Curlango Rosas
echo "Buenos dias";;
echo "Buenas tardes";;
echo "Lo siento, no entiendo";;
Estructuras de Control
Ejemplo -- case -#!/bin/bash
echo "Es de dia? Contesta si o no"
read esDia
case "$esDia" in
[sS] | [sS][iI] )
[nN] | [nN][oO] )
*
)
esac
exit 0
Cecilia Curlango Rosas
echo
echo
echo
exit
"Buenos dias";;
"Buenas tardes";;
"Lo siento, no entiendo"
1;;
Ejercicio
Escribir un script en el que solicite al usuario el año de su
nacimiento y como respuesta indique el animal que le
corresponde a este año según el calendario Chino.
El sitio http://www.new-year.co.uk/chinese/calendar.htm
contiene información sobre el calendario Chino.
Cecilia Curlango Rosas
Estructuras de Control
Operadores Relacionales -- AND -Se ejecuta el primer enunciado empezando desde la
izquierda y si regresa true, continua con el siguiente
hasta terminar o encontrar un false.
enunciado1 && enunciado2 && enunciado3 && ...
Cecilia Curlango Rosas
Estructuras de Control
Operadores Relacionales -- OR -Se ejecuta cada enunciado empezando desde la
izquierda y continua con los siguientes hasta terminar
o encontrar uno true.
enunciado1 || enunciado2 || enunciado3 || ...
Cecilia Curlango Rosas
Estructuras de Control
Funciones
Para regresar valores numericos, se utiliza return. Si
no tiene return, regresa el valor del último mando
ejecutado.
Nombre_funcion () {
enunciados
}
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo Parte A -- funciones -#!/bin/bash
si_o_no() {
echo "Parametros son $*"
while true
do
echo -n "Escribe si o no "
read x
case "$x" in
s | si ) return 0;;
n | no ) return 1;;
*)
echo "Contesta si o no"
esac
done
}
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo Parte B -- funciones -echo "Parametros originales son $*"
if si_o_no "Te llamas $1"
then
echo "Hi $1"
else
echo "Olvidalo"
fi
exit 0
Cecilia Curlango Rosas
Ejercicio
Escribe un script que se llame “datos” y
responda como se muestra a continuación:
$datos mi_archivo
mi_archivo es un (directorio o archivo o enlace)
tiene xxxx bytes de longitud
pertenece a xxxx cuyo directorio de origen (HOME) es: xxxxx.
Cecilia Curlango Rosas
Tarea #5 Parte 1
Ejercicio
Escribe un script que se llame “datos” y
responda como se muestra a continuación:
$datos mi_archivo
mi_archivo es un (directorio o archivo o enlace)
tiene xxxx bytes de longitud
pertenece a xxxx cuyo directorio de origen (HOME) es: xxxxx.
Cecilia Curlango Rosas
Tarea #5 Parte 1
Ejercicio
Escriba un script para facilitar la creación de cuentas en el
servidor. Se deberá capturar el nombre de la materia que deberá
ser sm, tu, prog, o pooi. Además se capturará la cantidad de
grupos para los que se crearán las cuentas y la cantidad de
espacio en disco al que tendrá derecho cada usuario. Entonces,
se creará un grupo cuyo nombre será del tipo sm100, sm200,
etc. posteriormente generarán 16 cuentas por grupo. A cada
cuenta se le asignará un directorio de origen que estará ubicado
en /home/alumnos/grupo/usuarioXXX. Se deberá asignar
automaticamente la contraseña a cada usuario y generar un
archivo con el mismo nombre que el grupo en el que se
almacenarán los nombres de usuario y contraseñas.
Cecilia Curlango Rosas
Tarea #5 Parte 4
Ejercicio
Escriba un script para eliminar un grupo de cuentas como las
descritas en el ejercicio anterior. Deberá solicitarse el nombre
del grupo, la cuenta inicial y la cuenta final que se desea borrar.
Al borrar, deberán borrarse todos los archivos de cada usuario
cuya cuenta esta siendo eliminada.
Cecilia Curlango Rosas
Tarea #5 Parte 4
Descargar