ayuda script shell

Iniciado por unnatural, 29 Noviembre 2007, 17:58 PM

0 Miembros y 1 Visitante están viendo este tema.

unnatural

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

over crash

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
Ser consciente de la propia ignorancia es un gran paso hacia el saber.

unnatural

Ok. Muchas Gracias. Problemas resuelto, siempre se falla en lo mas tonto ;D