Eso se hace con expresiones regulares, supongamos que tengas el valor
almacenado en una variable IP_ADDRESS, seria algo asi como:


function validar_ip()
{
local  ip=$1
local  stat=1

    if [[ $ip =~ ^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
]{1,3}$ ]]; then
OIFS=$IFS
IFS='.'
ip=($ip)
IFS=$OIFS
[[ ${ip[0]} -le 255 && ${ip[1]} -le 255 \
&& ${ip[2]} -le 255 && ${ip[3]} -le 255 ]]
stat=$?
fi
    return $stat
}

 # Llamada a la funcion:

      valid_ip IP_ADDRESS
     if [[ $? -eq 0 ]];
             then echo OK;
        else echo IP incorrecta; fi

#   O , mejor ...

    if valid_ip IP_ADDRESS;
                then echo OK;
             else
               echo IP incorrecta; fi




saludos, yosle.



El Mie, 27 de Abril de 2011, 1:31 pm, KZKG^Gaara escribió:
> Hola gente,
> Tengo un script en el cual le pido al usuario una dirección IP (Ej.
192.168.40.16), luego con esa IP hago una cierta cantidad de cosas.
>
> O sea, el usuario introduce la IP que desea y listo, presiona [Enter]
(lo que sucede después no lo nota).
>
> Pero.... ¿y si el usuario pone letras en vez de números?
> Ese es mi problema. Desearía que cuando le pida la IP, en caso de que el
usuario escriba letras o algo así, que se le muestre un mensaje de error
mediante por ejemplo "dialog --msgbox "error"".
>
> Alguien puede ayudarme en esto?
> Ah, hago esto 100% en bash.
>
> Saludos y gracias por adelantado.
> ------------ próxima parte ------------
> Se ha borrado un adjunto en formato HTML...
> URL:
> <http://listas.jovenclub.cu/pipermail/gutl-l/attachments/20110427/624ab8e3/attachment.htm>
______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
> https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l
>


-- 

Ubuntu User number is # 30682






______________________________________________________________________
Lista de correos del Grupo de Usuarios de Tecnologías Libres de Cuba.
Gutl-l@jovenclub.cu
https://listas.jovenclub.cu/cgi-bin/mailman/listinfo/gutl-l

Responder a