Scripting Bash · 7 min read · Nov 14, 2025
Shell Scripting Parte 4: Estructuras de Control de Repetición
Bienvenido a la parte cuatro de la serie de tutoriales de scripting de shell de HowtoForge (Haz clic aquí para leer la parte 1, parte 2 y parte 3 del tutorial). En esta parte, cubriremos las diferentes estructuras de control de repetición del shell bash y cómo usar cada estructura proporcionando algunos ejemplos. Comencemos.
Introducción
La estructura de control de repetición, también conocida como estructura de control de bucle, es un tipo de estructura de control en los lenguajes de programación que se utiliza para simplificar tareas repetitivas o recursivas. Las declaraciones de bucle optimizan cualquier código al proporcionar una forma de minimizar el código, haciéndolo más fácil de solucionar que el código no estructurado que proporciona la misma salida. Hay tres tipos de declaraciones de bucle que el shell bash admite: los bucles for, while y until.
Bucles For
El bucle for es una declaración de bucle que utiliza la palabra clave for para declarar una declaración repetitiva. El bash admite diferentes sintaxis para la declaración del bucle for:
Sintaxis 1: Estructura For-in
for in
do
#### tu declaración aquí
done
Esta sintaxis comienza con la palabra clave for, seguida de un nombre de variable, la palabra clave in y la lista de posibles valores para la variable. Cada valor en la lista estará separado por un espacio y el inicio de las líneas de código que se repetirán se define en el do y termina con una palabra clave done.
Creemos una simple declaración de bucle for que permitirá al usuario ingresar 5 valores y obtener la suma de los números:
#!/bin/bash
result=0;
input=0;
for var in 1 2 3 4 5
do
printf "Input integer %d : " $var
read input
result=$((result+input))
done
echo "el resultado es " $result
En este ejemplo, la variable var sirve como el contador de nuestro bucle. Su valor se define en la lista de números después de la palabra clave in y el shell cambia los valores de la variable var después de cada ejecución del ciclo en la declaración de bucle. Dado que solo hay cinco valores enteros en nuestra lista, el shell ejecutará los códigos dentro de nuestra declaración de bucle solo cinco veces.
Sintaxis 2: Declaración de bucle For con valores de lista de cadenas
También puedes declarar una variable que contendrá la lista de elementos para tu contador. Por ejemplo, considera el siguiente código:
#!/bin/bash
list="var1 var2 var3 var4"
var=""
mkdir sample
cd sample
echo creando los "directorios...."
for var in $list
do
mkdir $var
done
La línea list=”var1 var2 var3 var4” define los valores de la variable list. Luego se asignó a var en la línea for var in $list y finalmente, los directorios se crean en la línea mkdir $var.
Sintaxis 3: Declaración de bucle For con lista como archivo
También puedes recuperar una lista de un archivo existente para ser utilizada en la declaración de bucle for en lugar de declararla dentro de tu código usando el comando cat. Por ejemplo, abre tu editor de texto favorito y enumera al menos cinco nombres de directorios.

A continuación, abre una nueva pestaña en el mismo editor de texto y crea un nuevo script. Este script debe guardarse en el mismo directorio donde se guardó la lista de directorios que creaste previamente.
#!/bin/bash
dirList=$(cat list)
echo "creando directorios...."
for var in $dirList
do
mkdir $var
done
Este ejemplo es útil cuando tienes que crear cientos de directorios en tu computadora Linux, ¿no crees?
Sintaxis 4: Sintaxis similar a C
for((initialization; boolean_test; increment/decrement))
do
#### tu código va aquí
doneQuizás, la estructura de bucle for más familiar que el shell admite es la estructura similar a C. El bucle comienza con la inicialización de la variable contador y luego el shell evalúa la expresión booleana declarada después de la inicialización. Si el resultado de la expresión booleana es verdadero, entonces el shell ejecutará el conjunto de declaraciones dentro de la cláusula do; de lo contrario, termina la declaración de bucle y procede a la línea después de la palabra clave done. El shell procederá a la siguiente iteración a través de la declaración de incremento o decremento declarada después de la prueba booleana. Como ejemplo, reconstruyamos nuestro primer ejemplo usando esta estructura.
#!/bin/bash
result=0
input=0
for((var=1;var<=5;var++))
do
printf "Input integer %d : " $var
read input
result=$((result+input))
done
echo $result
Declaración de Bucle While
La declaración while es un tipo de estructura repetitiva en bash que utiliza la palabra clave while. A diferencia de la sintaxis tipo C de la estructura de bucle for, la estructura de control de repetición while separa la inicialización, la prueba booleana y la declaración de incremento/decremento.
Sintaxis 1: Estructura While con declaraciones condicionales basadas en símbolos aritméticos
while(condition)
do
###tu código va aquí
done Para poder diferenciar while de las otras declaraciones de bucle, construyamos nuestro primer ejemplo para la declaración while.
#!/bin/bash
result=0
input=0
var=1
while((var <= 5))
do
printf "Input integer %d : " $var
read input
result=$((result+input))
var=$((var+1))
done
echo "el resultado es " $result
Mirando nuestro ejemplo, la declaración while comienza con una inicialización de nuestra variable contador var. A continuación, la prueba booleana se declara después de la palabra clave while y el conjunto de declaraciones que se repetirán se declarará dentro de las declaraciones do y done. En las declaraciones while, el intérprete solo comenzará y ejecutará la repetición de códigos si el resultado de la prueba booleana es verdadero. Por otro lado, la declaración de bucle solo terminará la iteración de códigos cuando la expresión booleana resulte falsa.
Sintaxis 2: Declaración de Bucle While con declaración condicional basada en mnemotécnica
while [ ]
do
####tu código va aquí
done También puedes declarar una declaración condicional basada en mnemotécnica dentro de una declaración de bucle while. Para la declaración, se utilizará un corchete cuadrado en lugar de paréntesis. (Revisa las declaraciones condicionales basadas en mnemotécnica aquí) Por ejemplo:
#!/bin/bash
var=1;
while [ $var -le 5 ]
do
printf "Input integer %d : " $var
read input
result=$((result+input))
var=$((var+1))
done
echo "el resultado es " $result
Sintaxis 3: Declaración de Bucle While con declaración condicional basada en archivo
while read
do
####tu código va aquí
done < Al igual que lo que hicimos en la declaración de bucle for, también puedes abrir un archivo de texto y asociarlo en la declaración de bucle while. Por ejemplo:
#!/bin/bash
mkdir sample2
cd sample2
echo "creando directorios..."
while read var
do
mkdir $var
done

En este ejemplo, he reciclado la lista que creamos hace un momento y creé un nuevo script en el mismo directorio. Ten en cuenta que si tu archivo de texto se encuentra en un directorio diferente, debes proporcionar la ruta exacta del archivo después del símbolo <.
Declaración de Bucle Until
Otro tipo de declaración de bucle que el bash admite es la estructura until. La declaración until ejecuta cada comando dentro del bucle hasta que la expresión booleana declarada resulta falsa. Es completamente opuesta a la declaración while.
Sintaxis 1: Bucle Until con declaración condicional basada en símbolos aritméticos
until (())
do
####conjunto de comandos
done Tengamos un ejemplo:
result=0
input=0
var=1
until((var > 5))
do
printf "Input integer %d : " $var
read input
result=$((result+input))
var=$((var+1))
done
echo "el resultado es " $result
Sintaxis 2: Declaración de Bucle Until con declaración condicional basada en mnemotécnica
until [ ]
do
####tu código va aquí
done Dado que la declaración until es solo la opuesta de la declaración de bucle while, también puedes declarar una declaración condicional basada en mnemotécnica en la estructura until. Sin embargo, para terminar el bucle, debes declarar una declaración condicional opuesta; es decir, hacer que la declaración condicional evalúe a falsa.
!/bin/bash
result=0
input=0
var=1
until [ $var -gt 5 ]
do
printf "Input integer %d : " $var
read input
result=$((result+input))
var=$((var+1))
done
echo "el resultado es " $result
Conclusión
Esta parte del tutorial cubre las tres estructuras de bucle que el bash admite: las declaraciones de bucle for, while y until. Cada una de estas declaraciones tiene diferentes estructuras, usos y ventajas. El bash admite diferentes estructuras, proporcionando más opciones a los programadores y, por lo tanto, facilitando la codificación de scripts de shell.
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.