En bash, en las sentencias Case no se puede usar como tal el mayor que (>
), mayor o igual que (>=
) y sus respectivos análogos relacionados a menor que. Sin embargo, hay como un cierto truco, que aunque no es lo mismo que los símbolos utilizados anteriormente, se aproxima mucho y puede ser de gran utilidad, ya que en ocaciones es mejor usar el case statement que usar muchos if else. No queremos un código spaguetti asqueroso.
Entonces, lo primero que debemos saber es la estructura de las sentencias case. Esta es la siguiente:
case EXPRESSION in
PATTERN_1)
STATEMENTS
;;
PATTERN_2)
STATEMENTS
;;
PATTERN_N)
STATEMENTS
;;
*)
STATEMENTS
;;
esac
Pero aquí les voy a poner un ejemplo para que vean como debe ir en un programa real:
#!/bin/bash
read -p "What is the password? " password
case$passwordin"gatitos16") echo"Welcome";;
*) echo"Get ride of my view";;
esac
Una vez sabiendo esto vamos a ver como podemos utilizar los rangos para nuestros programas. Estos se utilizan con los corchetes []
, donde dentro de estos va a ir el rango en el cual vamos a querer que una opcion sea elegida, este rango puede ser un numero o una letra. Es como las expresiones regulares pero no se pueden usar caracteres. En el siguiente ejemplo les quedara mas claro a que es a lo que me refiero:
#!/bin/bash
read -n1 -p "Type whatever character " char
echo-e"\r"case$charin
[0-9]) echo"Your character is a number";;
[A-z]) echo"Your character is a letter";;
$) echo-e"Your character is a $";;
\#) echo -e "Your character is a #";;
*) echo"Your character is other different";;
esac
Aquí se puede apreciar mejor a lo que me refería, además de que se pueden usar mayúsculas y minúsculas en un mismo rango. Eso se hizo con [A-z]