Est Control
Estructuras de Control en Bash Script
Section titled “Estructuras de Control en Bash Script”Este documento explica cómo usar bucles, estructuras de control y el comando case en Bash.
Incluye ejemplos prácticos y comentarios explicativos.
Bucle for
Section titled “Bucle for”El bucle for permite ejecutar una serie de comandos repetidamente para una lista de valores o rangos numéricos.
Ejemplo 1: Lista de elementos:
for fruta in manzana mango pera; do echo "Me gusta la $fruta"doneRecorre una lista de palabras (en este caso, frutas) y ejecuta el bloque
do ... donepara cada elemento.
Ejemplo 2: Rango de números:
for i in {1..3}; do echo "Contando: $i"doneEsa forma usa brace expansion: la secuencia numérica del 1 al 3 sale de la expresión entre llaves en la línea del
for(véase el bloque de código).
Ejemplo 3: Sintaxis estilo C
for (( j=10; j>=5; j-- )); do echo "Cuenta regresiva: $j"doneEsta forma usa la sintaxis tradicional tipo C:
for (( inicialización; condición; incremento )); do … done.
Bucle while
Section titled “Bucle while”Ejecuta un bloque de código mientras una condición sea verdadera.
i=0
while [[ $i -lt 3 ]]; do echo "i = $i" ((i++))doneEn este ejemplo, el bucle incrementa
idesde 0 hasta que ya no sea menor que 3.
Leer líneas desde un archivo:
Puedes usar while junto con read para leer archivos línea por línea.
while read line; do echo "- $line"done < archivo.txtEsto imprimirá cada línea del archivo precedida de un guion.
Bucle until
Section titled “Bucle until”El bucle until funciona igual que while, pero se ejecuta mientras la condición sea falsa.
contador=1
until [[ $contador -gt 5 ]]; do echo "Contando: $contador" ((contador++))doneEn este ejemplo, el bucle incrementa el contador desde 1 hasta 5.
Comandos continue y break
Section titled “Comandos continue y break”Los comandos continue y break sirven para controlar el flujo dentro de los bucles.
contador=0
while true; do ((contador++))
# Si el contador es 3, saltar esta vuelta if [[ $contador -eq 3 ]]; then echo "Saltando el número 3..." continue fi
echo "Número: $contador"
# Si el contador llega a 5, terminar el bucle if [[ $contador -eq 5 ]]; then echo "Se alcanzó el 5. Saliendo..." break fidone
break nrompenniveles de bucles anidados.
continuesalta directamente a la siguiente iteración.
Estructura case
Section titled “Estructura case”La estructura case permite comparar una variable con múltiples patrones, similar al switch en otros lenguajes.
num=10
case $num in 1) echo "Elegiste uno" ;; 2) echo "Elegiste dos" ;; *) echo "Numero desconocido :v" ;;esacCada bloque se cierra con
;;y el comodín*actúa como caso por defecto.