Emular el bucle Do-While en Bash
-
Sintaxis básica del bucle
do-while
en Bash -
La instrucción
break
en Bash -
La instrucción
continue
en Bash
El bucle es una idea fundamental en la programación que será bastante útil en tareas multitarea. Podemos usar numerosas funciones como for
, while
y until
para hacer un bucle en bash scripting.
En esta lección, veremos cómo usar el bucle do-while
en bash.
Sintaxis básica del bucle do-while
en Bash
La sintaxis fundamental para un bucle do-while
es la siguiente.
while [condition]
do
first command;
second command;
.
.
.
nth command;
done
Los parámetros de un bucle while
pueden ser cualquier expresión booleana. Cuando el condicional nunca se evalúa como false
, el bucle se vuelve infinito.
Presiona CTRL + C para detener el bucle infinito. Veamos un ejemplo:
#!/bin/bash
x=0
while [ $x -le 4 ]
do
echo "The value is $x"
((x++))
done
El valor actual de la variable se imprime y aumenta en uno en cada iteración del ejemplo. El valor inicial de la variable $x
es 0
.
El script anterior se ejecutará hasta que se alcance la cuarta línea. El sufijo -le
denota menor o igual que.
Producción :
The value is 0
The value is 1
The value is 2
The value is 3
The value is 4
La instrucción break
en Bash
Usamos una sentencia break
dentro del bucle para terminar el bucle cuando se cumple una condición.
Por ejemplo, el bucle terminará en el siguiente script después de la novena iteración. Sin embargo, podemos detener el bucle en la cuarta iteración usando declaraciones break
y if
.
#!/bin/bash
x=0
while [ $x -le 9 ]
do
echo "The value is $x"
((x++))
if [[ "$x" == '4' ]];
then
break
fi
done
Producción :
The value is 0
The value is 1
The value is 2
The value is 3
La instrucción continue
en Bash
La instrucción continue
sale de la iteración del bucle actual y transfiere el control del programa a la siguiente iteración.
Veamos un ejemplo. Cuando el elemento iterado actual es igual a 3
, la instrucción continue
hace que la ejecución regrese al inicio del bucle y continúe con la siguiente iteración.
#!/bin/bash
x=0
while [ $x -le 5 ]
do
((x++))
if [[ "$x" == '3' ]];
then
continue
fi
echo "The value is $x"
done
Producción :
The value is 1
The value is 2
The value is 4
The value is 5
The value is 6
Como se esperaba en el resultado anterior, cuando $x
era igual a 3
, se saltaba la iteración y pasaba a la siguiente.