string=123456
if [ $string == 123456 ]; then
echo 123
fi
Esto funciona bien, pero si cambio == a = ~ me sale este error:
./test: line 3: [: =~: binary operator expected
bash
shell-script
Iluminar
fuente
fuente
=~
es en este caso incorrecto.=~
compara el patrón (lado izquierdo de la tarea) con una expresión regularregex
en el lado derecho de la tarea. Una expresión regular en su forma más simple se pasa como'[0-9][0-9]'
123456
es un RE válidoRespuestas:
Lacoincidencia de expresiones regulares de Bash solo funciona entre corchetes dobles
[[ ... ]]
:fuente
[[ ... ]]
, ya que allí no se divide la palabra ni se expande el nombre de ruta. Solo son necesarios cuando se usan corchetes individuales[ ... ]
(ambos lados) y en la mano derecha de la expresión de doble corchete.