El Manual de BASH Scripting Básico para Principiantes/El clon (Case-Esac)

← El básico (If-Then) El clon (Case-Esac) El clásico (For) →
El Manual de BASH Scripting Básico para Principiantes


Sentencia Case-Esac editar

El conjunto de palabras Case ... Esac conforman un selector en función de un resultado.

Ejemplo editar

Por ejemplo, supongamos que tenemos una variable X la cual puede tomar un valor numérico leído desde teclado:

  read x
  case $x in
     1)
        echo "uno"
     ;;
     2)
        echo "dos"
     ;;
     *)
        echo "no sé qué numero es"
     ;;
  esac

Explicación del código editar

read espera un valor desde el teclado para X , 'ingrese un numero'; Case llama la variable y según su valor muestra un mensaje en pantalla, si el numero es distinto a 1 o 2 se ejecuta la linea '*' y esac es la instrucción de cierre.

Esto también es aplicable a variables alfanuméricas, aquí también presten atención que es sensible a mayúsculas y minúsculas.

Por ejemplo: editar

  read opcion
  case $opcion in
      s|S) 
         echo "pulso la opción SI"
      ;;
      n|N)
         echo "pulso la opción NO"
      ;;
      *)
         echo "desconozco esa opción"
      ;;
  esac

Explicación del ejemplo editar

En este caso el programa reconoce las mayúsculas y las minúsculas, el (símbolo barra vertical) '|' es una instrucción 'o' (OR) en donde las opciones son 's' ó 'S', lo que determinan si el usuario tecleó alguna de estas letras se ejecuta tal tarea, en este caso imprime en la pantalla la leyenda pulso la opción SI.

Este mecanismo es muy útil a la hora de toma de decisiones, por menú o de forma autónoma para tener un medio de control.

Consejos útiles editar

Un par de tips para esto:

  • Las estructura case-esac puede estar contenida dentro de otro, por ejemplo de un if ó un while.
  • En estos ejemplos la ejecución de tarea es de una línea pero se pueden poner varias lineas por tareas de decisión o bien llamar un script externo.