En parte del script en el que estoy trabajando, quiero validar que la dirección IP ingresada esté en el formato correcto. Quiero hacer un bucle mientras el formato de entrada NO es correcto. Lo siguiente funciona para un bucle mientras el formato ES correcto.
while [[ $range =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ]]
do
¿Cómo puedo cambiar esto para decir que NO encaja en el formato? Esperaba !=~
que funcionara, pero recibo un error de sintaxis.
Respuestas:
La solución es tan simple, estoy seguro de que todos lo encontrarán divertido.
No es necesario preocuparse por los detalles de la sintaxis de negación, solo use en
until
lugar dewhile
.fuente
Para la comparación de la cadena, se debe usar en
!=
lugar de!=~
.Desde
man bash
Como está utilizando una expresión regular a la derecha, de hecho lo necesita
=~
. Puedes elegir negar toda la expresión.Ejemplo:
fuente
bash
4.2.42. pastebin.com/0vHh5MMB