#!/bin/bash # bucleForBash02.sh # Bucle for, segunda sintaxis en bash # Autor: angeldp # Script que se encargará de solicitar una dirección IP # hasta que se introduzca de forma correcta. Se usará # la sintaxis 2 de los bucles for en bash # Emplearé una variable de control # que será OK cuando la IP esté correctamente escrita CTR="fail" # Bucle que se encarga de verificar si # la variable de control CTR es igual a OK until [ "$CTR" = "ok" ] do # Creo una nueva variable CTR2 que será OK # y solo se cambiará a fail cuando un octeto # contenga un valor no permitido CTR2="ok" clear echo Indique la nueva IP read NEWIP # Por medio de un bucle for recorreré # los cuatro octetos de la dirección IP for((i=1;i<5;i++)) do # En la variable OCT guardo el contenido # del octeto para verificar si se ha indicado # un valor permitido OCT=`echo $NEWIP | cut -d. -f$i` # Por medio de un IF compruebo si el contenido # de OCT es un número entre 0 y 255; y si no lo es # actualizo la variable de control CTR2 if [ $OCT -lt 0 -o $OCT -gt 255 ] then CTR2="fail" fi done # Al salir del bucle for miro si el contenido de la # variable CTR2 es distinto de fail; si el primer # campo es mayor que 0; y si no existe un campo 5; # indico que se ha escrito bien la IP cambiando # la variable CTR C1=`echo $NEWIP | cut -d. -f1` C5=`echo $NEWIP | cut -d. -f5` if [ "$CTR2" != "fail" ] && [ $C1 -ne 0 ] && [ -z $C5 ] then CTR="ok" fi done echo "La IP introducida es correcta"