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

Ayuda con comando CASE

Estas en el tema de Ayuda con comando CASE en el foro de Unix / Linux en Foros del Web. Mi problema es con un ejercicio para la facultad , donde se me pide que el usuario ingrese ciertos comandos para obtener distintos resultados, en ...
  #1 (permalink)  
Antiguo 10/11/2009, 12:56
Avatar de Durin  
Fecha de Ingreso: febrero-2008
Ubicación: Argentina-Santa fe-Funes
Mensajes: 93
Antigüedad: 16 años, 3 meses
Puntos: 1
Ayuda con comando CASE

Mi problema es con un ejercicio para la facultad , donde se me pide que el usuario ingrese ciertos comandos para obtener distintos resultados, en otras palabras seria lo siguiente:
a) Con -h que muestre el mensaje "Son las (hora actual)"
b) Con - d que muestre el mensaje "Hoy es (dia de la semana)"
c) Con -f que muestre el mensaje "hoy es (dia,mes,año)"
d) Con -a que muestre el almanaque del año actual
e) Con -m que muestre el almanaque del mes de septiembre del 2006
Y luego se pide que se controle si se ingreso un parametro incorrecto, con lo cual debera mostrar un mensaje.
El codigoseria asi:

case "$1" in
-h) echo Son las `date '+%T' `;;
-d) echo Hoy es el dia `date '+%A' `;;
-f) echo Hoy es `date '+%D' `;;
-a) echo Almanaque de este año cal;;
-m) echo Almanaque de Septiembre del 2006 cal 09 2006;;
esac

if test -z "$1"
then
echo No ha ingresado ningun parametro.
fi


Bueno, hasta ahi, el proceso funciona correctamente, mi problema mas precisamente es, como hago para controlar si el usuario no ingresa cualquiera de los parametros: -h, -d, -f, -a, -m; osea, si ingresa cualkier otra cosa. Lo que pude lograr es si el usuari no ingresa nada y solo le da enter, lo cual muestra un mensaje indicando que no ingreso ningun parametro de los anteriores mencionados.
Bueno, muchas gracias a cualquier aporte, por lo visto con el case no se puede solucionar dicho problema, si no es utilizando un condicional if.
__________________
...Siete para los Señores Enanos en palacios de piedra ...
  #2 (permalink)  
Antiguo 10/11/2009, 15:14
Avatar de Durin  
Fecha de Ingreso: febrero-2008
Ubicación: Argentina-Santa fe-Funes
Mensajes: 93
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Ayuda con comando CASE

Bue.. me respondo a mi mismo.. ya encontre la solucion, es mucho mas facil, si se quiere poner una opcion invalida ( como lo seria el "else" en el caso del "if" ), osea cuando no se cumplen las condiciones anteriores, se pone un argumento mas, y se recurre al asterisco, ya que tiene como "valor global", seria asi:
case "$1" in
-h) echo Son las `date '+%T' `;;
-d) echo Hoy es el dia `date '+%A' `;;
-f) echo Hoy es `date '+%D' `;;
-a) echo Almanaque de este año:
cal;;
-m) echo Almanaque de Septiembre del 2006:
cal 09 2006;;
*) echo No se ingreso el parametro correcto
esac


En tonces, si no ingresa el usuario ninguno de los parametros que estan dentro del CASE, aparece el mensaje indicado dentro del valor del *
__________________
...Siete para los Señores Enanos en palacios de piedra ...
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 21:32.