Cómo usar el bucle while en Bash

Suraj Joshi 30 enero 2023
  1. Sintaxis: while Bucle en Bash
  2. Ejemplo: while Bucle en Bash
  3. Ejemplo: Un bucle infinito while en Bash
  4. Ejemplo: while Bucle en Bash con la declaración break
  5. Ejemplo: bucle while en Bash con una declaración continue
Cómo usar el bucle while en Bash

El bucle while es una de las estructuras de bucle más utilizadas en casi todos los lenguajes de programación. Se usa cuando no sabemos el número de veces que necesitamos ejecutar un bucle. Podemos especificar una condición para el bucle while, y las sentencias del bucle se ejecutan hasta que la condición se vuelve falsa.

Sintaxis: while Bucle en Bash

while [condition]
do
   command-1
   command-2
     ...
     ...
   command-n
done

Aquí, la condition representa la condición que debe ser comprobada cada vez antes de ejecutar los comandos en el bucle. Si la condition es verdadera, ejecutamos las declaraciones en el bucle. Si la condition es falsa, salimos del bucle. Las sentencias desde el command-1 hasta el command-n son sentencias que se ejecutan en un bucle hasta que la condition se vuelve falsa.

Ejemplo: while Bucle en Bash

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
done

Resultado:

5
4
3
2
1
0

Aquí, inicialmente, num se establece en 5. Seguimos imprimiendo num en la terminal y disminuyendo num en un bucle mientras el valor de num sea mayor o igual a 0.

Ejemplo: Un bucle infinito while en Bash

#!/bin/bash

while true
do
  echo "This is an infinite while loop. Press CTRL + C to exit out of the loop."
  sleep 0.5
done

Resultado:

This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
This is an infinite while loop. Press CTRL + C to exit out of the loop.
^C

Es un bucle infinito while que imprime This is an infinite while loop. Press CTRL + C to exit out of the loop. cada 0,5 segundos. Para salir del bucle, podemos presionar CTRL+C.

Ejemplo: while Bucle en Bash con la declaración break

#!/bin/bash

num=5

while [ $num -ge 0 ]
do
  echo $num
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Exit out of loop due to break"
    break
  fi
done

Resultado:

5
4
Exit out of loop due to break

En el programa anterior, num se inicializa como 5. El bucle se ejecuta siempre y cuando num sea mayor o igual a 0. Pero como tenemos una declaración de break en el bucle cuando num es 3. Entonces, salimos del bucle como el valor de num se convierte en 3.

Ejemplo: bucle while en Bash con una declaración continue

#!/bin/bash

num=6

while [ $num -ge 1 ]
do
  ((num--))
  if [[ "$num" == '3' ]]; then
    echo "Ignore a step due to continue"
    continue
  fi
  echo $num
  
done

Resultado:

5
4
Ignore a step due to continue
2
1
0

En el programa anterior, num se inicializa como 6. En el bucle, primero disminuimos num en 1 y luego imprimimos el último valor de num. El bucle se ejecuta siempre y cuando el valor num sea mayor o igual a 1. Cuando num se convierte en 3, el script no imprime el valor de num ya que tenemos la sentencia continue cuando num es 3.

Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn