Las estructuras de control son fundamentales en cualquier lenguaje de programación, y el scripting en shell no es una excepción. Estas estructuras permiten controlar el flujo de ejecución de un script, tomando decisiones y repitiendo acciones según sea necesario.

Conceptos Clave

  1. Condicionales (if, elif, else): Permiten ejecutar bloques de código basados en condiciones.
  2. Bucles (for, while, until): Permiten repetir bloques de código mientras se cumpla una condición.
  3. Sentencias de control (break, continue): Permiten alterar el flujo de los bucles.

Condicionales

if, elif, else

La estructura if evalúa una condición y ejecuta un bloque de código si la condición es verdadera. Puedes usar elif para evaluar condiciones adicionales y else para ejecutar un bloque de código si ninguna de las condiciones anteriores es verdadera.

Sintaxis:

if [ condición ]; then
    # Bloque de código si la condición es verdadera
elif [ otra_condición ]; then
    # Bloque de código si la otra condición es verdadera
else
    # Bloque de código si ninguna condición es verdadera
fi

Ejemplo:

#!/bin/bash

echo "Introduce un número:"
read numero

if [ $numero -gt 10 ]; then
    echo "El número es mayor que 10."
elif [ $numero -eq 10 ]; then
    echo "El número es igual a 10."
else
    echo "El número es menor que 10."
fi

Comparaciones Comunes

Operador Descripción
-eq Igual a
-ne No igual a
-lt Menor que
-le Menor o igual que
-gt Mayor que
-ge Mayor o igual que

Bucles

for

El bucle for itera sobre una lista de elementos, ejecutando un bloque de código para cada elemento.

Sintaxis:

for variable in lista; do
    # Bloque de código
done

Ejemplo:

#!/bin/bash

for i in 1 2 3 4 5; do
    echo "Número: $i"
done

while

El bucle while ejecuta un bloque de código mientras una condición sea verdadera.

Sintaxis:

while [ condición ]; do
    # Bloque de código
done

Ejemplo:

#!/bin/bash

contador=1

while [ $contador -le 5 ]; do
    echo "Contador: $contador"
    contador=$((contador + 1))
done

until

El bucle until es similar al while, pero ejecuta el bloque de código hasta que la condición sea verdadera.

Sintaxis:

until [ condición ]; do
    # Bloque de código
done

Ejemplo:

#!/bin/bash

contador=1

until [ $contador -gt 5 ]; do
    echo "Contador: $contador"
    contador=$((contador + 1))
done

Sentencias de Control

break

La sentencia break se utiliza para salir de un bucle antes de que se complete.

Ejemplo:

#!/bin/bash

for i in 1 2 3 4 5; do
    if [ $i -eq 3 ]; then
        break
    fi
    echo "Número: $i"
done

continue

La sentencia continue se utiliza para saltar a la siguiente iteración del bucle.

Ejemplo:

#!/bin/bash

for i in 1 2 3 4 5; do
    if [ $i -eq 3 ]; then
        continue
    fi
    echo "Número: $i"
done

Ejercicios Prácticos

Ejercicio 1: Condicionales

Escribe un script que pida al usuario que introduzca su edad y luego imprima un mensaje indicando si es menor de edad (menos de 18 años), adulto (18-64 años) o mayor (65 años o más).

Solución:

#!/bin/bash

echo "Introduce tu edad:"
read edad

if [ $edad -lt 18 ]; then
    echo "Eres menor de edad."
elif [ $edad -le 64 ]; then
    echo "Eres adulto."
else
    echo "Eres mayor."
fi

Ejercicio 2: Bucles

Escribe un script que imprima los números del 1 al 10 utilizando un bucle while.

Solución:

#!/bin/bash

contador=1

while [ $contador -le 10 ]; do
    echo "Número: $contador"
    contador=$((contador + 1))
done

Ejercicio 3: Sentencias de Control

Escribe un script que imprima los números del 1 al 10, pero que se detenga si encuentra el número 7.

Solución:

#!/bin/bash

for i in {1..10}; do
    if [ $i -eq 7 ]; then
        break
    fi
    echo "Número: $i"
done

Conclusión

En esta sección, hemos cubierto las estructuras de control básicas en scripting de shell, incluyendo condicionales, bucles y sentencias de control. Estas herramientas son esenciales para escribir scripts más complejos y eficientes. En la próxima sección, exploraremos cómo definir y utilizar funciones y librerías en scripts de shell.

Maestría en Linux: De Principiante a Avanzado

Módulo 1: Introducción a Linux

Módulo 2: Comandos Básicos de Linux

Módulo 3: Habilidades Avanzadas en la Línea de Comandos

Módulo 4: Scripting en Shell

Módulo 5: Administración del Sistema

Módulo 6: Redes y Seguridad

Módulo 7: Temas Avanzados

Módulo 8: Proyectos Prácticos

© Copyright 2024. Todos los derechos reservados