Esto es lo mismo pero mas compacto , y al estilo UNIX , verifica que la cadena sea ###.###.###.### y ademas el rango de cada octeto (0-255) , en vez de echo puedes usar dialog , gdialog o zenity ...etc para mostrar la notificaciones adecuadas.
espero que te sirva ,... saludos ,yosle yosle@yosle:~/Escritorio$ ./prueba.sh 200.2.2.1 IP correcta yosle@yosle:~/Escritorio$ ./prueba.sh 200.2.2.1gufgf IP incorrecta yosle@yosle:~/Escritorio$ ./prueba.sh 500.2.2.1 IP incorrecta yosle@yosle:~/Escritorio$ cat prueba.sh #!/bin/sh validar () { if [[ $1 =~ ^[[:digit:]]+$ ]] && (( $1 >= 0 && $1 <= 255 )) then echo "0" return 0 else echo "1" return 1 fi } saveIFS=$IFS IFS='.' # obtener ip desde el 1er paramentro de linea de comandos ip=($1) IFS=$saveIFS for octet in ${ip[@]} do if ! validar $octet > /dev/null then validar=1 fi done # si validar es 1 [[ $validar != 1 ]] && echo "IP correcta" || echo "IP incorrecta" 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