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.