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