Quero verificar se uma variável tem um ano válido usando uma expressão regular. Lendo o manual do bash , entendo que posso usar o operador = ~
Olhando para o exemplo abaixo, eu esperaria ver "não está OK", mas vejo "OK". O que estou fazendo errado?
i="test"
if [ $i=~"200[78]" ]
then
echo "OK"
else
echo "not OK"
fi
regex
bash
conditional
idrosídeo
fonte
fonte
=~
.Respostas:
Foi alterado entre 3.1 e 3.2:
Portanto, use-o sem as aspas desta forma:
i="test" if [[ $i =~ 200[78] ]] ; then echo "OK" else echo "not OK" fi
fonte
a +b
ela relatará um erro de sintaxe ...a\ \+b
para escapar do espaço e do caractere de adição.Você precisa de espaços ao redor do operador = ~
fonte