Cómo usar el bucle for en bash
Clase 24 de 43 • Curso de Programación en Bash Shell
Contenido del curso
Programación Shell Básica
Script Interactivos
Condicionales
Iteración
Archivos
Empaquetamiento
Funciones
Cierre del curso
La sentencia for en bash es una herramienta esencial para recorrer valores de forma clara y eficiente. Aquí verás, paso a paso, cómo iterar listas, cómo expandir arreglos, cómo usar comodines y cómo aplicar el formato tradicional de tres bloques con do/done sin enredos, tal como se mostró en un entorno Ubuntu.
¿Qué es la sentencia for en bash y cuándo usarla?
La idea clave: for recorre una lista de valores. A diferencia de un arreglo, que es una estructura de datos, el for itera sobre una lista; por eso, cuando tienes un arreglo necesitas expandirlo a lista antes de iterar. También se usa con comodines como el asterisco para archivos y con sustitución de comandos para procesar salidas de utilidades como ls.
Puntos clave. - Variable alias: identificador temporal para cada elemento de la lista. - Palabras reservadas: se abre con do y se cierra con done. - Listas vs arreglos: se itera listas; los arreglos se expanden para formar listas. - Comodín asterisco (*): expande a los nombres en el directorio actual. - Sustitución de comandos $(...): convierte la salida de un comando en una lista de ítems.
¿Cómo iterar listas, arreglos y archivos con for?
En la práctica, se mostraron tres escenarios frecuentes: números, cadenas y archivos. La lógica es la misma: definir la lista, alias para cada ítem, y dentro de do imprimir o procesar.
¿Cómo iterar una lista de números?
Si los números están en un arreglo, primero se expanden con asterisco para formar una lista. Así, el for recorre cada valor.
numeros=(1 2 3 4 5)
echo "Iterar en la lista de números"
for num in "${numeros[*]}"; do
echo "Número: $num"
done
Claves. - ${arreglo[*]}: expande el arreglo como una lista. - num: alias que toma cada valor.
¿Cómo iterar una lista de cadenas?
Se puede escribir la lista explícitamente, con cada elemento separado por espacios. Se usaron nombres como ejemplo.
echo "Iterar en la lista de cadenas"
for nom in "Marco" "Pedro"; do
echo "Nombre: $nom"
done
Claves. - Lista explícita: elementos entre comillas para conservar espacios o caracteres especiales. - Salida legible: concatenar etiquetas como "Nombre:" facilita la lectura.
¿Cómo iterar archivos y salidas de un comando?
Dos variantes útiles al trabajar con el sistema de archivos: con comodines y con sustitución de comandos.
# Con comodín: todo en el directorio actual
echo "Iterar en archivos"
for file in *; do
echo "Nombre archivo: $file"
done
# Con sustitución de comandos: salida de ls
echo "Iterar en archivos (vía comando)"
for file in $(ls); do
echo "Nombre archivo: $file"
done
Claves. - Comodín: genera la lista de archivos automáticamente. - $(ls)*: convierte la salida del comando en una lista para el bucle. - Dependerá de las necesidades del programa elegir una u otra.
¿Cómo usar el formato tradicional de for con tres bloques?
También se revisó el formato tradicional, similar al de otros lenguajes, compuesto por inicialización; condición; iteración. En bash, se escribe con doble paréntesis y se mantiene el uso de do/done.
echo "Iteración con formato tradicional"
for (( i=1; i<=10; i++ )); do
echo "Número: $i"
done
Claves. - Inicialización: i=1. - Condición: i<=10. - Iteración: i++. - Sintaxis de bash: for (( ... )); do ... done.
En conjunto, viste cómo usar for para listas, arreglos expandidos, archivos con comodín, salidas de comandos y el formato tradicional de tres bloques. Si quieres, comenta qué caso usarías en tu próximo script y por qué.