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

Responder a