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