Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/09/2010, 17:16
varuk
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta ¿Hay alguna forma de poner un rango númerico en un case?

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

Última edición por varuk; 23/09/2010 a las 17:18 Razón: Marcar recibir correo con las respuestas