06. Bash: control de flujo (case)

Publicado por

En la nota anterior expliqué el uso de las condicionales en Bash, en esta ocasión les platicaré el uso del caseAunque el elifresulta muy útil para resolver una gran cantidad de problemas y situaciones, el caserepresenta una mejor opción ya que permite manipular y ver de forma más clara todas las opciones.

La sintaxis es la siguiente:

case expresion in
  caso1)
    comandos
  ;;
  caso2)
    comandos
  ;;
#...
  *)
    comandos
  ;;
esac

Esta estructura permite controlar qué lista de comandos se ejecutarán, de acuerdo a si se cumplen las condiciones o no.

Diagrama case

Ejemplo:

#!/bin/bash
#Control de flujo: case

echo "Adivina mi edad"
read edad

case $edad in
  30)
    echo "¡Correcto!"
  ;;
  *)
    echo "¡Incorrecto!"
  ;;
esac

En este script hay dos posibles casos, el primero es cuando el valor es 30 entonces imprime “¡Correcto!” y el segundo caso que contiene un [*] se usa para indicar todas las cadenas que no cumplen con las características de los casos anteriores.

case-bash

Ejemplo:

#!/bin/bash
#Control de flujo: case

echo "Escribe una frase"
read frase

case $frase in
  a*)
    echo "La frase empieza con a"
  ;;
  c*t)
    echo "La frase empieza con c y termina con t"
  ;;
  *com)
    echo "La frase termina con la cadena com"
  ;;
  *)
    echo "La frase no cumple con ninguna de las condiciones"
  ;;
esac

En este script hay cuatro posibles casos; el primero es cuando la cadena inicia con el caracter a, el segundo cuando la cadena comienza con c y termina con t, el tercero cuando la cadena termina con la subcadena com y el último caso que contiene un [*] se usa para indicar todas las cadenas que no cumplen con las características de los casos anteriores.

case-metacaracteres-bash

Algunas reglas para tomar en cuenta

Paréntesis de cierre después de cada caso (condición).

Doble punto y coma ;; delimita la lista de comandos que serán ejecutados cuando se cumpla el caso (condición).

Finalmente cerrar la sentencia case con esac.

Espero esta información te haya sido de utilidad, como te pudiste dar cuenta el uso del case es muy simple. En la próxima nota continuaré con el tema Bash: argumentos y funciones desde línea de comandos. Hasta pronto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *