Advertisement
angeldp

bucleForBash02.sh

May 29th, 2015
388
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.60 KB | None | 0 0
  1. #!/bin/bash
  2. # bucleForBash02.sh
  3. # Bucle for, segunda sintaxis en bash
  4. # Autor: angeldp
  5. # Script que se encargará de solicitar una dirección IP
  6. # hasta que se introduzca de forma correcta. Se usará
  7. # la sintaxis 2 de los bucles for en bash
  8.  
  9. # Emplearé una variable de control
  10. # que será OK cuando la IP esté correctamente escrita
  11. CTR="fail"
  12.  
  13. # Bucle que se encarga de verificar si
  14. # la variable de control CTR es igual a OK
  15. until [ "$CTR" = "ok" ]
  16.    do
  17. #  Creo una nueva variable CTR2 que será OK
  18. #  y solo se cambiará a fail cuando un octeto
  19. #  contenga un valor no permitido
  20.    CTR2="ok"
  21.    clear
  22.    echo Indique la nueva IP
  23.    read NEWIP
  24. #  Por medio de un bucle for recorreré
  25. #  los cuatro octetos de la dirección IP
  26.    for((i=1;i<5;i++))
  27.       do
  28. #     En la variable OCT guardo el contenido
  29. #     del octeto para verificar si se ha indicado
  30. #     un valor permitido
  31.       OCT=`echo $NEWIP | cut -d. -f$i`
  32. #     Por medio de un IF compruebo si el contenido
  33. #     de OCT es un número entre 0 y 255; y si no lo es
  34. #     actualizo la variable de control CTR2
  35.       if [ $OCT -lt 0 -o $OCT -gt 255 ]
  36.       then
  37.       CTR2="fail"
  38.       fi
  39.    done
  40. #  Al salir del bucle for miro si el contenido de la
  41. #  variable CTR2 es distinto de fail; si el primer
  42. #  campo es mayor que 0; y si no existe un campo 5;
  43. #  indico que se ha escrito bien la IP cambiando
  44. #  la variable CTR
  45.  
  46.    C1=`echo $NEWIP | cut -d. -f1`
  47.    C5=`echo $NEWIP | cut -d. -f5`
  48.    if [ "$CTR2" != "fail" ] && [ $C1 -ne 0 ] && [ -z $C5 ]
  49.       then
  50.       CTR="ok"
  51.    fi
  52. done
  53. echo "La IP introducida es correcta"
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement