Programación en Bash Linux IV: Estructuras [for, while, until]

Como bien lo dije en el post pasado, muchas de las estructuras que podemos manejar en la programación bash son muy similares a las que utilizamos en otros lenguajes, como por ejemplo, la estructura for actúa de forma muy similar a como lo hace un for en python.

El for en bash itera una lista, de modo que para poder crear un for que itere del 0 al 9 tendríamos que crear una lista que tuviera esta cantidad de elementos, para ello podemos usar la instrucción “seq n m”, donde n es el numero inicial y m el numero final.

Un ejemplo para ser mas claros. Bien, sabemos que for itera una lista, así que probemos:

for i in "uno" "dos" "tres"; do
	echo $i
done

Y obtenemos como salida:

uno
dos
tres

Ahora intentemos crear un for al estilo C (o java) de la forma “for(int i=0;i<10;i++){}":

for i in `seq 0 9`; do
	echo $i
done

Y esta es su salida:

0
1
2
3
4
5
6
7
8
9

En cambio, el uso del while sigue el patrón de repetirse mientras se cumpla una condición:

EN="s"
while [ $EN != "S" ]; do
	read -p "Escribe S para salir: " EN
done

En el anterior ejemplo podemos ver la sencilla sintaxis que tiene el while; el ciclo no terminara hasta que el usuario escriba la letra “S” (debe ser mayúscula).

Ejecutándolo:

Escribe S para salir: a
Escribe S para salir: b
Escribe S para salir: c
Escribe S para salir: s
Escribe S para salir: S

En el caso de la sentencia Until, actuara de forma similar al while, se repetirá hasta que la condición se cumpla:

EN="S"
until [ $EN != "S" ]; do
	read -p "Escribe S para salir: " EN
done

De modo que si siempre tecleo la letra “S” (sin comillas), el ciclo continuara, en cambio, al introducir algo distinto a “S” terminara.

Escribe S para salir: S
Escribe S para salir: S
Escribe S para salir: 7

Post a Comment

Your email is never shared. Required fields are marked *

*
*