Quise aun no llegues a la materia de Bash Scripting o talvez ya la hayas tomando, lo importante que quiero compartir contigo es que Bash Scripting es como un tipo de lenguaje de programación que tiene sus reglas gramaticales (un poco rígidas, por cierto) y tiene todo tipo de sentencias, loops y funciones, ya que bash scripting soporta POO. El punto es que el bash scripting es usado para automatizar tareas desde la terminal (mi favorita la de Ubuntu).
.
El hecho es que si quieres utilizar regExp con bash scripting, tiene su chiste y hay cosas que hay que tener en cuenta que no son exactamente triviales. Al ser un lenguaje de programación que funciona en la terminal, tiene algunas cosillas que hay que tener en cuenta y que te pueden ahorrar mucho estrés si alguna vez llegas a programar con esta potente herramienta.
La forma de hacerlo es de la siguiente manera:
#!/bin/bash
emailRegex='^\w+@[a-z]{5,7}\.[a-z]{2,3}\.?[a-z]{2,3}?$'read -p "Type your name: " name
read -p "Type your email: " email
if [[ $email =~ $emailRegex ]]; thenecho"Valid email, welcome"elseecho"Invalid email"fi
Si no le entendiste, te lo explico:
.sh
read -p
son un comando en bash que nos permite leer una variable pero antes poner un promptEl if statement en nuestro ejemplo tiene la siguiente sintaxis:
if[[ condition ]]; then
statement
else
statement
fi
Aquí hay que tener cuidado porque el if tiene que tener un espacio con el [[, ya que si lo ponemos junto nos saldrá un error. De igual forma, dentro de la condición debe haber espacios con los dobles corchetes que hay en la sintaxis del if statement.
.
Además de esto, la condición dentro de los dobles corchetes esta escrita de la siguiente manera:
$email =~ $emailRegex
Esto lo que quiere decir es que la variable mail tiene que corresponder con la expresión regular emailRegex. Por esto, el orden de los signos también es importante (=~), ya que si estos estuvieran invertidos saldría un error.
Además de esto y ya para terminar, es importante tener en cuenta que la variable normal va al principio y la de la expresión regular va después, ya que si no, puede que el programa este dando falsos positivos.