string=123456
if [ $string == 123456 ]; then
echo 123
fi
Isso funciona bem, mas se eu mudar == para = ~ eu recebo este erro:
./test: line 3: [: =~: binary operator expected
bash
shell-script
Lumify
fonte
fonte
=~
está neste caso errado.=~
compara o padrão (lado esquerdo da atribuição) com uma expressão regularregex
no lado direito da assinatura. Uma expressão regular em sua forma mais simples é passada como'[0-9][0-9]'
123456
é um RE válidoRespostas:
Acorrespondência de regex do Bash funciona apenas entre colchetes duplos
[[ ... ]]
:fonte
[[ ... ]]
, pois não ocorre divisão de palavras ou expansão de nome de caminho. Eles são necessários apenas ao usar colchetes simples[ ... ]
(ambos os lados) e no lado direito da expressão de colchete duplo.