Estructuras de Control

Anuncio
Estructuras de Control
Cecilia Curlango Rosas
Estructuras de Control
Comparación de cadenas
Verdadero si
cad
• cad no es una cadena vacia
cad1 = cad2
• ambas cadenas son iguales
cad1 != cad2
• ambas cadenas son diferentes
-n cad
• cad no es null
-z cad
• cad es null (cadena vacia)
Cecilia Curlango Rosas
Estructuras de Control
Comparación Numérica
exp1 -eq exp2
• las expresiones son iguales
exp1 -ne exp2
• las expresiones no son iguales
exp1 -gt exp2
• exp1 > exp2
exp1 -ge exp2
• exp1 >= exp2
exp1 -lt exp2
• exp1 < exp2
exp1 -le exp2
• exp1 <= exp2
! expr
Cecilia Curlango Rosas
• niega la expresion y regresa
verdadero si la expresion es falsa
Estructuras de Control
Operadores de Archivos
-d archivo •
-e archivo •
-f archivo •
-r archivo •
-s archivo •
-w archivo •
-x archivo •
Cecilia Curlango Rosas
el archivo es un directorio
el archivo existe
el archivo es un archivo normal
el archivo se puede leer
el archivo no tiene longitud cero
se puede escribir en el archivo
es un archivo ejecutable
Estructuras de Control
Formas de Probar Expresiones
test
test -f archivo.c
[ ]
[ -f archivo.c ]
Debe ponerse un espacio entre la condición que se está
probando y los corchetes.
Cecilia Curlango Rosas
Estructuras de Control
Sintáxis -- if -if condición
then
enunciados
else
enunciados
fi
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo 1 -- if -#!/bin/bash
echo "Es de dia? Contesta si o no"
read esdia
if [ $esdia = "si" ]; then
echo "Buenos dias"
else
echo "Buenas tardes"
fi
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo 2 -- if elif -#!/bin/bash
echo "Es de dia? Contesta si o no"
read esdia
if [ $esdia = "si" ]; then
echo "Buenos dias"
elif [ $esdia = "no" ]; then
echo "Buenas tardes"
else
echo "No reconozco $esdia debes escribir si o no"
fi
exit 0
Cecilia Curlango Rosas
Pregunta
Que sucede si al ejecutar alguno de
los scripts de los ejemplos
anteriores, en vez de escribir una
respuesta, solo se presiona ↵?
Como se puede evitar esto?
Cecilia Curlango Rosas
Ejercicio 1
Ejercicio 1
Escribe un script que se llame “hola” y responda como
se muestra a continuación:
$hola Miguel
Como estas Miguel?
$hola Miguel Pedro
Hola, como estas Miguel
Como te va Pedro?
$hola
Que no tienes nombre?
$hola Cecy
Que onda?
Cecilia Curlango Rosas
Ejercicio 2
Estructuras de Control
Sintáxis -- for -for variable in valores
do
enunciados
done
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo 3 -- for -#!/bin/bash
# ejemplo de ciclo for primer formato
for nombre in pedro maria pablo martha
do
echo "hola $nombre"
done
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo 4 -- for --
Ambos ciclos se repiten una vez por
cada parámetro en la línea de mandos.
#!/bin/bash
# ejemplo de ciclo for segundo formato
for nombre
do
echo "hola $nombre"
done
for nombre in "$@"
do
echo "hola $nombre"
done
exit 0
Cecilia Curlango Rosas
Estructuras de Control
Ejemplo 5 -- for --
Expansión de comodines
#!/bin/bash
ls /etc/rc?.d/* | more
for file in $(ls /etc/rc?.d/*); do
echo "Contenido de $file"
cat $file
done
exit 0
Cecilia Curlango Rosas
Ejercicio
Escribir un script que tome de la línea de mandos una
lista de archivos, genere una lista de los archivos que
si existen y otra lista con los nombres de los archivos
que no existen.
En caso de que no se escriba ningún parámetro, el
script deberá mostrar un mensaje de error indicando el
motivo del error y como puede corregirse.
Cecilia Curlango Rosas
Ejercicio
Escribir un script que cree un archivo con nombre
numeros y guarde en éste una serie de números cuyo
límite indique el usuario.
Cecilia Curlango Rosas
Descargar