Quiero verificar si una variable tiene un año válido usando una expresión regular. Al leer el manual de bash , entiendo que podría usar el operador = ~
Mirando el ejemplo a continuación, esperaría ver "no OK" pero veo "OK". ¿Qué estoy haciendo mal?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
regex
bash
conditional
idrosida
fuente
fuente
=~
.Respuestas:
Se cambió entre 3.1 y 3.2:
Así que úselo sin las comillas así:
i="test" if [[ $i =~ 200[78] ]] ; then echo "OK" else echo "not OK" fi
fuente
a +b
, informará un error de sintaxis ...a\ \+b
para escapar del espacio y el carácter más.Necesita espacios alrededor del operador = ~
fuente