Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: unnatural en 29 Noviembre 2007, 17:58 pm



Título: ayuda script shell
Publicado por: unnatural en 29 Noviembre 2007, 17:58 pm
Hola a todos. La verdad es que no tengo mucha idea aún pero estoy en ello. La historia es que estoy haciendo un pequeño ejercicio de programacion en shell muy sencillito que es para comprobar que una clave introducida tenga entre un numero de digitos definidos y la cuestion esta en que no soy capaz de solucionar el fallo. Se que el problema lo tengo en el while y me parece que es que no es capaz de hacerme el test con dos condiciones diferentes sobre la misma variable. ¿Pero entonces como lo hago? Aquí dejo el script para que me podais ayudar. Muchas gracias.

#!/bin/bash
#Este programa pide que introduzcamos una clave
#y comprueba que sea mayor de 5 caracteres y menor de 10
i=0
while [ "$i" -lt 5  ]  && [ "$i" -gt 10 ]
do
echo "POR FAVOR, INTRODUZCA UNA CLAVE"
read password
i=${#password}
if [ "$i" -lt 5 ];
then
echo "NUMERO DE DIGITOS MENOR DE 5"
elif [ "$i" -gt 10 ];
then
echo "NUMERO DE DIGITOS MAYOR DE 10"
else
echo "CLAVE GUARDADA"
fi
done


Título: Re: ayuda script shell
Publicado por: over crash en 29 Noviembre 2007, 18:46 pm
El problema que tienes es que estas poniendo and en vez de or aqui te lo doy corregido:
#!/bin/bash
#Este programa pide que introduzcamos una clave
#y comprueba que sea mayor de 5 caracteres y menor de 10
i=0;
while [ "$i" -lt 5 ] || [ "$i" -gt 10 ]
do
echo "POR FAVOR, INTRODUZCA UNA CLAVE"
read password
i=${#password}
if [ "$i" -lt 5 ];
then
echo "El numero de digitos de la clave es inferior a 5"
elif [ "$i" -gt 10 ];
then
echo "El numero de digitos de la clave es mayor de 10"
else
echo "CLAVE CORRECTA"
fi
done


Título: Re: ayuda script shell
Publicado por: unnatural en 29 Noviembre 2007, 18:48 pm
Ok. Muchas Gracias. Problemas resuelto, siempre se falla en lo mas tonto ;D