Emular el bucle Do-While en Bash

Nilesh Katuwal 30 enero 2023
  1. Sintaxis básica del bucle do-while en Bash
  2. La instrucción break en Bash
  3. La instrucción continue en Bash
Emular el bucle Do-While 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.