Hola. Mirad, tengo esto:
Basicamente esto te pregunta que tabla de multiplicar quieres ver. El case lo que comprueba es si lo que escribe el usuario es un número o no. ¿Hay alguna otra forma de poner un rango que no sea haciendo [0-9]|[0-9][0-9]|[0-9][0-9][0-9]? Algo más corto... alguna especie de rango estilo 0..999. Gracias.
Código:
#!/bin/bash
printf "Escribe qué tabla de multiplicar quieres ver (0, 1, 2, 3, 4... 10) \n"
read tabla
case $tabla in
[0-9]|[0-9][0-9]|[0-9][0-9][0-9]) #Evalua si es un número hasta 999
if [ $tabla -lt 0 ] || [ $tabla -gt 10 ]
then
printf "Tienes que elegir entre 0 y 10 \n"
else
echo TABLA DE MULTIPLICAR DEL $tabla
printf "============================ \n"
for i in `seq 0 1 10`
do
resultado=`expr $tabla \* $i`
echo "$tabla * $i = $resultado"
done
fi
;;
*) #En caso de que sea cualquier otro caracter
echo Tienes que introducir un número
;;
esac