disculpen mi ignorancia, pero:
que función tiene el ~ al inicio de la expresión regular en la condicional:
if [[ $1 =~ ^[[:digit:]]+$ ]] && (( $1 >= 0 && $1 <= 255 ))
----- Original Message -----
From: "Yosle" <yo...@dpe.pr.rimed.cu>
To: "Lista cubana de soporte tecnico en Tecnologias Libres"
<gutl-l@jovenclub.cu>
Sent: Thursday, April 28, 2011 2:18 AM
Subject: Re: [Gutl-l] Duda sobre asignación de variable en bash
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
______________________________________________________________________
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