No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso de Programación en Bash Shell

Curso de Programación en Bash Shell

Marco Antonio Toscano Freire

Marco Antonio Toscano Freire

Sentencias Case

22/43
Recursos

En la sentencia Case el objetivo principal es validar una expresión simple, puede ser un número, una cadena o un rango de valores

Aportes 31

Preguntas 3

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Para el caso default, cuando las entradas del case no se cumplen, el asterisco debe ir sin comillas.

#/bin/bash
#programa para validar la sentencia case

color=""

read -p "digite un color: " color

case $color in
    "amarillo") echo "Amarillo en ingles es Yellow";;
    "azul")     echo "Azul en ingles es Blue";;
    "rojo")     echo "Rojo en ingles es Red";;
    *)          echo "color no conocido";;
esac

Sería una buena idea renovar este curso. Algunos conceptos no quedan tan claros.

  1 #!/bin/bash
  2 # Practice time with Case Sentence
  3 # Autor: Diego Ramirez - @diegodev
  4 
  5 operatingSystem=""
  6 
  7 read -p "What is your Operating System?: " operatingSystem
  8 
  9 case $operatingSystem in
 10     "Windows") echo -e "\nHello Windows User!";;
 11     "MacOs") echo -e "\nHello Hipster!";;
 12     "Linux") echo -e "\nWelcome to the Open Source my friend";;
 13     *) echo -e "\nAre you kidding me?"
 14 esac

En Fish Shell:

#!/usr/bin/fish

set -l count
set -l stars

while true
    read -n1 -P '¿Cuántas estrellitas le darías a este curso? (1-5)> ' count

    if string match --regex --quiet '^[1-5]$' $count
        break
    else
        echo 'Por favor, introduce un número del 1 al 5'
    end
end

# String ######################################################################
echo -e '\nWith the `string` builtin command'
echo 'Gracias por darle estás estrellitas al curso '(string repeat -n $count '🌟')

# For #########################################################################
for ignore in (seq $count)
    set stars "$stars🌟"
end

echo -e '\nWith `for`'
echo "Gracias por darle estás estrellitas al curso $stars"

# Switch-case #################################################################
switch $count
    case '1'
        set stars '🌟'
    case '2'
        set stars '🌟🌟'
    case '3'
        set stars '🌟🌟🌟'
    case '4'
        set stars '🌟🌟🌟🌟'
    case '5'
        set stars '🌟🌟🌟🌟🌟'
    case '*'
        exit 1 # Should not be reached
end

echo -e '\nWith `switch-case`'
echo "Gracias por darle estás estrellitas al curso $stars"

Aquí hay un ejemplo general del case statement:

case EXPRESSION in

  PATTERN_1)
    STATEMENTS
    ;;

  PATTERN_2)
    STATEMENTS
    ;;

  PATTERN_N)
    STATEMENTS
    ;;

  *)
    STATEMENTS
    ;;
esac

Si pongo “*”) no me reconoce, sin embargo me funciona bien sin las comillas *) así sí me funciona correctamente.

En mi caso, apliqué el operador or, para que la A pueda ser insertada tanto en mayúscula, como en minúscula.

#!/bin/bash
#expresion case, para validar rango de valores.  
#Autor: @harvif

opcion=""

echo "ejemplo Sentencia case"
read -p "Ingrese una opción de la A a la Z" opcion
echo -e "\n"
case $opcion in

    [a] | [A]) echo -e "\n Operacion Guardar Archivo";;
    "e") echo -e "\n Operacion eliminar archivo";;
    [C-E]) echo -e "/n No esta implementada la opcion";;    
    *) echo -e "opcion no implementada"
esac
#!/bin/bash
# Programa que implementa la funcion case para en base a la opcion elegida, seguir un algoritmo

echo "Elija un numero entre 0 y 10: "
read opcion

case $opcion in
    1) echo "Te toca un perfume";;
    2) echo "Te toca perder.";;
    *) echo "Opcion erronea."
esac

Terminal:

Código:

#!/bin/bash
# Program to exemplify how to use 'case' sentence.
# Author: Cristian Camilo - Cristianco9

option=""
filter='^[A-Z]?$'

echo "************ VALIDATION SYSTEM ************"
read -p "Please enter a option between (A-Z): " option
while [[ ! $option =~ $filter ]]; do
    echo "************* INCORRECT VALUE *************"
    read -p "Please enter a option between (A-Z): " option
done
case $option in
    "A") echo -e "\n*************** File saved ****************";;
    "B") echo -e "\n************* File deleted ****************";;
    [C-E]) echo -e "\n*********** NOT IMPLEMENTATED *************";;
    *) echo -e "****************** ERROR ******************"
esac
echo "******************* END *******************"

Hola, dejos mis apuntes. saludos.

# ! /bin/bash
# programa para explicar sentencia case 
# Author: Diego Beltran tw @diguitodev hista @diegodevelops


opcion=""

echo "Ejemplo de sentencia case"
read -p "ingrese una opcion de la A - Z: " opcion
echo -e "\n"

case $opcion in
    "A") echo -e "\nOperacion guardar archivo";;
    "B") echo "Operación eliminar archivo";;
    [C-E]) echo "No esta implementada la operacion";;
    "*") "opcion incorrecta"
esac```
Las \*\*sentencias `case` en Bash\*\* son útiles cuando tienes múltiples valores posibles para una variable y quieres ejecutar diferentes comandos según el valor. Se utilizan como una alternativa más clara y organizada que múltiples `if-elif-else`. \### Sintaxis de `case` en Bash: ```bash case variable in patrón1) \# Comandos si variable coincide con patrón1 ;; patrón2) \# Comandos si variable coincide con patrón2 ;; \*) \# Comandos si variable no coincide con ningún patrón ;; esac ``` \### Características importantes: \- La sentencia `case` evalúa la variable comparándola con varios patrones. \- Cada bloque de comandos termina con `;;` para separar las opciones. \- El patrón `\*` actúa como un "else", ejecutándose si ningún otro patrón coincide. \- Se pueden usar caracteres comodín como `\*`, `?`, o listas de opciones `\[abc]` en los patrones. \### Ejemplo básico: ```bash \#!/bin/bash read -p "Ingrese una opción (start, stop, restart): " opcion case $opcion in start) echo "Iniciando el servicio..." ;; stop) echo "Deteniendo el servicio..." ;; restart) echo "Reiniciando el servicio..." ;; \*) echo "Opción no válida." ;; esac ``` \### Uso de varios patrones: Puedes agrupar varios patrones para que ejecuten el mismo bloque de comandos. ```bash read -p "Ingrese un día de la semana: " dia case $dia in lunes|martes|miércoles|jueves|viernes) echo "Es un día laboral." ;; sábado|domingo) echo "Es fin de semana." ;; \*) echo "No es un día válido." ;; esac ``` \### Ventajas: \- Más legible cuando tienes muchas comparaciones que hacer. \- Evita escribir muchas sentencias `if-elif`, lo que mejora la organización del código.
Dejo mi implementación del código de la clase ```python #!/bin/bash # Programa para ejemplificar el uso del la sentencia case # Elaborado por: Diego Andres Benitez # Contacto: @xyzdiego opcion="" opcionRegex="^[A-Z]{1}$" while true do read -p "Ingrese una opción de la A - Z: " opcion echo -e "\n" if [[ $opcion =~ $opcionRegex ]]; then break else echo "Por favor, ingresa una opción correcta y en mayúscula" fi done case $opcion in "A") echo -e "\nOperación Guardar Arhivo";; "B") echo "Operación Eliminar Archivo";; [C-E]) echo "No esta implementada la operación";; *) echo "Opción Incorrecta";; esac ```#!/bin/bash \# Programa para ejemplificar el uso del la sentencia case \# Elaborado por: Diego Andres Benitez \# Contacto: @xyzdiego opcion="" opcionRegex="^\[A-Z]{1}$" while true do read -p "Ingrese una opción de la A - Z: " opcion echo -e "\n" if \[\[ $opcion =~ $opcionRegex ]]; then break else echo "Por favor, ingresa una opción correcta y en mayúscula" fi done case $opcion in "A") echo -e "\nOperación Guardar Arhivo";; "B") echo "Operación Eliminar Archivo";; \[C-E]) echo "No esta implementada la operación";; \*) echo "Opción Incorrecta";; esac
Correción de la línea de código de la "opción incorrecta": ```bash \*) echo "Opcion Incorrecta";; ```

#!/bin/bash

read -p "Escribe un día de la semana: " dia

case $dia in
"Lunes")
echo “Es un día laborable.”
;;
“Martes” | “Miércoles” | “Jueves” | “Viernes”)
echo “Es un día laborable.”
;;
“Sábado” | “Domingo”)
echo “Es un fin de semana.”
;;
*)
echo “No es un día válido.”
;;
esac

Da error “*”) "opcion Incorrecta
debe ser ->

*) echo “opcion Incorecta”

Este vato no explica nada, me gustaria que los cursos sean de una calidad superior porque quedan muy por detras

Un poco diferente el codigo pero funciona igual

# !/bin/bash
# Programa para ejemplificar el uso la sentencia case
# Autor: Tito026


echo "Ejemplo Sentencia Case"
read -n1 -p "Ingrese una opcion de la A - Z:" opcion
echo -e "\n"

case $opcion in
  "A") echo -e "\nOperacion Guardar Archivo";;
  "B") echo "Operacion Eliminar Archivo";;
  [C-E]) echo "No esta implementada la operacion";;
  "*") echo "Opcion Incorrecta";;
esac

  • ¿ Cómo utilizar la sentencia case?
  1. Mecanismo para evaluar una simple expresión sea entero o cadena.
  2. Es muy similar a la sentencia switch.
  3. Puede evaluar rango de caracteres.

Dos observaciones

  1. El Asterisco (*) de la opción final debe ir sin comillas
  2. Al final de esta misma opción le hicieron falta los “;;”

Les comparto el código con las correcciones

# !/bin/bash
# Programa para ejemplificar el uso de la sentencia case
  
# Autor: Angel Estrada
  
opcion=""
  
echo -e "\nEjemplo sentencia Case\n"
  
read -n1 -p "Ingrese una opcion de la A-Z: " opcion
  
echo -e "\n"
  
case $opcion in
      "A") echo -e "\nOperacion guardar Archivo";;
      "B") echo "Operacion eliminar archivo";;
      [C-E]) echo "No estaimplementada la operacion";;
      *) echo " $opcion no es una opcion ";;
esac
 

Hola, cómo se inserta el código en los aportes?

Hola! les comparto mi código con el tema de la clase.

#!/bin/bash
# Programa para el uso del tema de case
# Autor: Milo

opcion=""

echo "Ejemplo del tema de la sentencia CASE"
read -p "Ingrese un tema de la A - Z: " opcion
echo -e "\n"

case $opcion in 
    "A") echo "Seleccionaste el tema de la A";;
    "B") echo "El tema seleccionado es B";;
    [C-E]) echo "Ingresaste el tema de C, D o E";;
    *) echo "Ningún tema clasificado";;
esac

Hola, comparto el tema de mi ejercicio

echo "Programa de una expresion simple"
read -n1 -p "Introduce un valor entre ‘0’ y ‘1’, o ‘e’ para salir: " option
echo -e "“
case $option in
"0”) echo -e “Entrada inactiva: $option”;;
“1”) echo -e “Entrada activa: $option”;;
“e”) echo -e “Saliendo…”
*) echo -e “Valor introducido: $option (sin efecto)”;;
esac
echo -e “”

Buenísimo el curso 😃

para los puristas el -lt = menor a

gracias

Listo

#!/bin/bash
# Programa para utilziat expresiones Case
# DBZ

opcion=""

echo "Ejemplo Sentencia Case"
read -p "Ingrese una opción de la A - Z:" opcion
echo -e "\n"

case $opcion in
    "A") echo -e "\nOperación Guardar Arhivo";;
    "B") echo "Operación Eliminar Archivo";;
    [C-Z]) echo "No esta implementada la operación";;
    "*") "Opción Incorrecta"
esac   

echo "Ud selecciono la opcion: $opcion"
#!/bin/bash

echo "------------------↓↓-------------------"
echo "colors name's in english:"

read -p "Type a color: " u_color

case $u_color in

    "red"|"Red")
        echo "$u_color in spanish is 'rojo'"
        echo ""
        ;;
    "green"|"Green")
        echo "$u_color in spanish is 'verde'"
        echo ""
        ;;
    "blue"|"Blue")
        echo "$u_color in spanish is 'azul'"
        echo ""
        ;;
    *)
        echo "sorry, the only available colors are red, green and blue"
        echo ""
        ;;
esac

Lo hice de la siguiente forma.

# !/bin/bash
# Programa para ejemplificar el uso de la sentencia case
# Autor: Jose Suarez

opcion=""

echo "Ejemplo Sentencia case"
read -n1 -p "Ingrese una opcion de la A - Z:" opcion
echo -e "\n"

case $opcion in
    "A") echo -e "\nOperacion Guardar Archivo";;
    "B") echo -e "\nOperacion Eliminar Archivo";;
    [C-E]) echo -e "\nNo esta implementada la operacion";;
    *) echo -e "\nOpcion incorrecta"
esac
#!/bin/bash

option=""

read -n1 -p "Enter an option (A-Z): " option
echo -e "\n"

case $option in
    "A")
        echo -e "\nSave file operation";;
    "B")
        echo "Remove file operation";;
    [C-E])
        echo "This operation is not available";;
    "*")
        echo "Invalid option";;
esac