Día 37 Condicional CASE:
-
La condicional
casees una estructura de control de flujo, que nos permite ejecutar ciertos bloques de código dependiendo de ciertas condiciones. -
Ejemplo en Pseudocodigo:
-
caso: 1 bloque de codigo fin del caso 1 caso: 2 bloque de codigo fin del caso 2 caso: 3 bloque de codigo fin del caso 3 -
Sintaxis:
-
case expresion in condicion1) #codigo en caso de que la exprecion sea cierta ;; condicion2) #codigo en caso de que la exprecion sea cierta ;; condicionN) #codigo en caso de que la exprecion sea cierta ;; esac
-
-
En este ejemplo declaramos la condicional con
caseseguido de una expresión, las expresiones son el resultado de cualquier expansión, y luegoines un separador sintáctico que opera como delimitador para luego proceder con las condiciones, las cuales evalúan si el resultado de la expansión coincide, los;;se usan para separar las condiciones, cumple una función sintáctica, y finalmenteesacque es case alrevez, y su función es declarar el fin de las condiciones -
Ejemplo de uso:
-
variable=1 case $variable in 1) echo "primera opción" ;; 2) echo "segunda opción" ;; 3) echo "tercera opción" ;; esac
-
-
El comodín (*):
-
Este es un comodín que permite analizar no solo cadena de caracteres si no tambien partes de esa cadena, y ademas tabulaciones, espacios vacios e incluso ninguna acción
-
Ejemplo:
-
exprecion="archivo.txt" case $exprecion in *.txt) echo "es un archivo de texto" ;; *.mp3) echo "es un archivo de audio" ;; *.mp4) echo "es un archivo de video" ;; esac -
tambien podemos usarlo como sufijo:
-
exprecion="1-Archivo" case $exprecion in 1-*) echo "es el primer archivo" ;; 2-*) echo "es el segundo arhivo" ;; 3-*) echo "es el tercer archivo" ;; esac -
de esta forma podemos analizar los primeros caracteres de una expansión.
-
Otra forma de usarlo es cuando ninguna opción es la correcta o directamente no se ejecuto ninguna opción:
-
exprecion="" case $exprecion in 1*) echo "primera opcion" ;; 2*) echo "segunda opcion" ;; *) echo "no se ejecuto ninguna opcion valida" ;; esac
-
-
Tambien podemos usar varias condiciones para un mismo resultado
-
exprecion="A" case $exprecion in A|B|C*) echo "Es una de las opciones A, B, C" ;; 1|2|3*) echo "es una de las opciones 1, 2, 3" ;; *) echo "no se ejecuto ninguna opcion valida" ;; esac
-