Forums:
Saludos
Acabo de crear un script que consiste en adivinar un numero secreto.
#!/bin/bash
numero=512
read -p "Ingrese un numero: " entrada
while [ $numero -ne $entrada ]
do
if [ $entrada -lt $numero ]
then
echo "Numero equivocado; el numero secreto es mayor"
else
echo "Numero equivocado; el numero secreto es menor"
fi
read -p "Ingrese un numero: " entrada
done
echo "Numero correcto ¡¡¡¡¡¡¡¡GANASTEEEE!!!!!!!!"
Pero me surgio un problema y es q al ingresar una letra o un caracter especial el script saca un error y a su vez saca el mensaje de numero correcto.
root@debian:~# ./while.sh
Ingrese un numero: l.
./while.sh: line 7: [: l.: integer expression expected
Numero correcto ¡¡¡¡¡¡¡¡GANASTEEEE!!!!!!!!
Entonces necesito saber como poner la condicion para q solo acepte numeros y saque error al ingresar letras o caracteres especiales.
De antemano muchas gracias...
Para validar que lo que
Para validar que lo que entre sea un número puedes usar algo como:
if eval expr ${entrada} + 1 > /dev/null 2>&1; then echo bien; else echo mal; fi
Esto dirá "bien", si va variable "$entrada" es un número, caso contrario dirá "mal", así ya no le pasarás un parámetro que no sea numérico al if...
bye
:)
Muchas gracias por tu ayuda
Muchas gracias por tu ayuda deathuser me sirvio de mucho
Lo que sabemos es una gota de agua... Lo que ignoramos es el oceano