Dans une partie du script sur lequel je travaille, je veux valider que l'adresse IP entrée est au format correct. Je veux faire une boucle alors que le format d'entrée n'est PAS correct. Ce qui suit fonctionne pour une boucle alors que le format EST correct.
while [[ $range =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} ]]
do
Comment puis-je inverser la situation pour dire que NE correspond PAS au format. J'espérais que !=~
cela fonctionnerait, mais j'obtiens une erreur de syntaxe.
Réponses:
La solution est si simple, je suis sûr que vous la trouverez toutes drôle.
Pas besoin de travailler sur les détails de la syntaxe de négation, utilisez simplement
until
au lieu dewhile
.la source
Pour comparer la chaîne, il faut utiliser à la
!=
place de!=~
.De
man bash
Comme vous utilisez une expression régulière à droite, vous en avez vraiment besoin
=~
. Vous pouvez choisir de nier l'expression entière.Exemple:
la source
bash
4.2.42. pastebin.com/0vHh5MMB