Bucle For
Parte de la sección Fundamentos del Journey de Terminal de Coddy — lección 71 de 82.
A veces necesitas repetir una acción varias veces. En lugar de escribir el mismo comando una y otra vez, puedes usar un bucle for para iterar a través de una lista de elementos y realizar una acción en cada uno.
Esta es la estructura básica de un bucle for en Bash:
#!/bin/bash
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneEste script genera un saludo para cada nombre en la lista. La variable name toma cada valor a su vez: primero "Alice", luego "Bob", luego "Charlie". La palabra clave do marca el inicio del cuerpo del bucle, y done lo finaliza.
Los bucles for son especialmente potentes cuando se combinan con comodines. Puedes recorrer todos los archivos en un directorio:
#!/bin/bash
for file in *.txt; do
echo "Processing $file"
doneEsto itera a través de cada archivo .txt en el directorio actual. En cada iteración, la variable file contiene el nombre del archivo actual, lo que te permite realizar operaciones en cada archivo automáticamente.
También puedes recorrer un rango de números usando expansión de llaves:
#!/bin/bash
for i in {1..5}; do
echo "Number: $i"
doneEsto imprime los números del 1 al 5. Los bucles for convierten tareas repetitivas en solo unas pocas líneas de código, haciendo que tus scripts sean más eficientes y fáciles de mantener.
Desafío
FácilCrea un script de shell llamado countdown.sh que use un bucle for para imprimir una cuenta regresiva del 5 al 1.
Tu script debe:
- Comenzar con la línea shebang (
#!/bin/bash) - Usar un bucle for con expansión de llaves para iterar a través de los números del 5 al 1
- Imprimir cada número en su propia línea en el formato:
Countdown: [number]
Haz el script ejecutable y ejecútalo. Tu salida debe ser:
Countdown: 5
Countdown: 4
Countdown: 3
Countdown: 2
Countdown: 1Pista: Usa
{5..1}para crear un rango descendente. Dentro del bucle, usaecho "Countdown: $i"dondeies tu variable de bucle.
Hoja de referencia
Un bucle for permite iterar a través de una lista de elementos y realizar una acción en cada uno.
Sintaxis básica:
for variable in list; do
# commands
doneRecorrer una lista de valores:
for name in Alice Bob Charlie; do
echo "Hello, $name!"
doneRecorrer archivos usando comodines:
for file in *.txt; do
echo "Processing $file"
doneRecorrer un rango de números usando expansión de llaves:
for i in {1..5}; do
echo "Number: $i"
donePara rangos descendentes, invierta el orden:
for i in {5..1}; do
echo "Number: $i"
donePruébalo tú mismo
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Fundamentos
4Directorios
Crear Un DirectorioCopiar Un DirectorioMover Y Renombrar Un DirectorioEliminar Un DirectorioResumen - Operaciones Con Directorios7Contenido de Archivos
Head y TailConteo de PalabrasComando SortComando UniqGrep BásicoGrep con FlagsResumen - Detective de Texto10Proyecto Analizador de Registros
Resumen del ProyectoVisualizando el Archivo de Registro13Fundamentos de Scripting en Shell
Qué es un Script de ShellCrear y Ejecutar un ScriptVariables en ScriptsEntrada de Usuario en ScriptsSentencia IfBucle ForBucle WhileRepaso - Adivina el Número2Navegación
Imprimir Directorio de TrabajoListar ArchivosCambiar de DirectorioRutas Absolutas vs RelativasDirectorio Home y RaízRepaso - Encuentra tu Camino8Redirección
Salida EstándarSobrescribir en un ArchivoAnexar a un ArchivoEntrada EstándarError EstándarResumen - Constructor de Registro11Permisos
Entendiendo PermisosLeyendo PermisosChmod con NúmerosChmod con SímbolosPropiedad de ArchivosResumen - Bloquéalo14Proyecto de Script de Copia de Seguridad
Visión General del ProyectoObteniendo la Ruta de Origen3Archivos
Crear un ArchivoLeer un ArchivoCopiar un ArchivoMover y Renombrar un ArchivoEliminar un ArchivoResumen - Operaciones con Archivos6Comodines y Patrones
El comodín asteriscoEl comodín interroganteComodines de corchetesCombinando comodinesRepaso - Operaciones selectivas9Tuberías
Qué es una tuberíaEncadenando dos comandosEncadenando múltiples comandosTubería con GrepResumen - Tubería de datos