Este documento explica las diferencias entre los bucles while y for en shell script. While se usa cuando no se sabe la cantidad de iteraciones por adelante, como cuando el usuario ingresa datos. For se usa cuando la cantidad de iteraciones es conocida, como iterar de 1 a 10. Incluye ejemplos de sintaxis de for para diferentes usos como contar de un número a otro, usar listas de valores e iterar sobre archivos. Finalmente propone ejercicios para practicar el uso de while y for.
1. SHELL SCRIPT
Estructuras
repetitivas II
Prof. Pablo Macón
http://soii-its.blogspot.com
pablomacon@gmail.com
2. WHILE VS. FOR
while es una estructura que, en general,
utilizamos cuando no sabemos de
antemano, cuántas veces se va a repetir
un código de programa
3. WHILE VS. FOR
Usamos el bucle while:
Cuando el usuario debe ingresar un
número en particular para salir del menú
“Pulse 0 para salir”
4. WHILE VS. FOR
Usamos el bucle while:
Cuando la condición no es numérica
while [ $a != “salir” ]
while [ $a == “true” ]
5. WHILE VS. FOR
for, en cambio, se utiliza, normalmente,
cuando sabemos exactamente cuántas
veces se tiene que repetir el ciclo
6. WHILE VS. FOR
Usamos el bucle for:
Cuando vamos desde un número hasta
otro en secuencia
Desde 1 hasta 10 de uno en uno
Desde 10 hasta 0 de dos en dos
7. WHILE VS. FOR
Usamos el bucle for:
Vamos a ver que en bash podemos
utilizar otras cosas como contadores, por
ejemplo listas de palabras
8. WHILE VS. FOR
En cualquier caso, for se compone de una
variable que va tomando distintos valores
de una lista posible, uno por vez
9. FOR
Sintaxis – versión 1
for variable in {inicio..fin..intervalo}
do
acciones
done
10. FOR
for i in {10..0} #si no pongo
intervalo
do #va de uno en uno
echo $i #hacia adelante o
sleep 1 #hacia atrás
done
11. FOR
for i in {0..10..2}
do
echo "bienvenido $i veces"
done
12. FOR
Sintaxis – versión 2 (parecido a java)
for ((inicio; condicion fin; incremento))
do
sentencias
done
13. FOR
for ((i=0; i<10; i++)) # doble
do # paréntesis
echo $i
done
14. FOR
for ((i=0; i<11; i+=2))
do
echo "bienvenido $i veces"
done
15. FOR
Sintaxis – versión 3
for variable in lista de valores
do
sentencias
done
16. FOR
for i in 10 9 8 7 6 5 4 3 2 1 0
do # espacio entre cada caracter
echo $i
done
17. FOR
for 0 2 4 6 8 10
do
echo "bienvenido $i veces"
done
18. FOR
Esta última sintaxis es más interesante
porque la lista puede ser no solo de
números, sino también de caracteres,
archivos, nombres, etc.
20. FOR
Ejercicio:
Pedir al usuario la cantidad de palabras
que quiera ingresar en un archivo. Luego
debemos leer el archivo e ir imprimiendo
las palabras de a una por vez
21. FOR
Ejercicio:
Crear un script que le permita ingresar
tantos nombres como se quiera y que al
presionar una tecla termine su ejecución.
Los nombres deberán quedar guardados
en un archivo llamado“nombres.txt”.
22. FOR
Ejercicio:
Crear un script similar al del punto
anterior pero en lugar de presionar una
tecla para finalizar, el usuario debe
especificar de antemano cuantos
nombres quiere cargar.
23. FOR
Ejercicio:
Crear un shell scipt que muestre por
pantalla los nombres guardados en el
archivo “nombres.txt”, pero de a uno y
limpiando la pantalla antes de mostrar el
siguiente nombre.