Foros del Web » Administración de Sistemas » Unix / Linux »

¿Hay alguna forma de poner un rango númerico en un case?

Estas en el tema de ¿Hay alguna forma de poner un rango númerico en un case? en el foro de Unix / Linux en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/09/2010, 17:16
 
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
  #2 (permalink)  
Antiguo 24/09/2010, 09:56
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: ¿Hay alguna forma de poner un rango númerico en un case?

Para las opciones del case, bash usa expansión de nombres de archivo. Fijate por acá:
http://www.gnu.org/software/bash/man...ttern-Matching

Habilitando la opción 'extglob' (shopt -s extglob) podés utilizar cuantificadores y transformar tu patrón en

[0-9]+

Esto aceptaría un número de cualquier largo.


Saludos.
  #3 (permalink)  
Antiguo 24/09/2010, 13:04
 
Fecha de Ingreso: abril-2004
Mensajes: 107
Antigüedad: 20 años, 7 meses
Puntos: 0
Respuesta: ¿Hay alguna forma de poner un rango númerico en un case?

Muchas gracias ^^

Etiquetas: case, poner, rango, formulario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:08.