Duda sobre funciones
Publicado: 27 Abril, 2011 - 07:58 Duda sobre funciones
Hola buenos días,
He realizado el sguiente script , lo que quiero realizar es que si no se selecciona ninguna opción del sub-menu
regrese al menu general, os pongo el código
#!/bin/bash
clear
function menugeneral {
echo " 1.Menu 1 "
echo
echo
echo " 2.Menu 2 "
echo
echo
echo " 3.Salir "
echo
echo
echo " Seleccione una opcion: $opcion "
}
read opcion
case $opcion in
1)
echo -n " Menu 1 "
;;
2)
echo -n " Menu 2 "
;;
3)
break
;;
*)
echo -n " No se ha seleccionado ninguna opcion "
menugeneral
;;
esac
Un saludo y gracias.
- Inicie sesión o regístrese para enviar comentarios
- 666 lecturas


Hola
Busca información subre bucles (do, while) ;)
Con ellos deberias de conseguir lo que quieres que es:
mientras no se selecciona ninguna opción del sub-menu
regrese al menu general
Por poner un ejemplo.
Un Saludo
Busca información subre bucles (do, while) ;)
.....
¿Podría ser algo similar a esto?
Opciones="saludar salir"select opt in $Opciones; do
if [ "$opt" = "saludar" ]; then
echo dome
echo Hola dijite su nombre
read nombre
echo hola $nombre
elif [ "$opt" = "salir" ]; then
echo done
exit
else
echo Seleccion incorrecta
fi
done
¿Piensas ponerle tiempo al menú? ¿O cómo vas a implementar el retorno al menú principal?
Yo usaría "4) Volver al menú principal" o algo así...
no me acaba de convencer la sintaxis... sobran muchos ecos por ahí. Seguro que puede reescribirse de forma más eficaz. De entrada deberías usar bucles como te indican
Los errores que yo veo.
-Función mal definida.
-Uso de "echo" para salto de línea, se usa "\n"
-No llamas a la función, por tanto no se ejecuta.
-Usa un blucle while o if, se puede hacer de las dos maneras.
y esto sobra: ;;
Realmente no tengo claro que es lo que estás intentando hacer... pero si fuera un menú emergente con varias opciones yo lo haría con perl, por ejemplo, no con bash
Hola buenas noches,
No va a ir con tiempo y justo lo que quiero implementar es eso "4) Volver al menú principal" pero estoy atascado la verdad, y tiene que ser con shell script.
Un saludo
PD.Cuando termine el script ya lo colgaré por aqui por si a alguien le interesa y seguro lo puede mejorar.
Te recomiendo que pienses, que programar (o hacer scripts en este caso) no va de aporrear teclas.
A menos que te lo hayan pedido así no tienes por qué hacer ninguna función:
Con algo así te debería valer.
Si te obligan a hacerlo con función con esto ya podrás figurártelo.
Busca información subre bucles (do, while) ;)
.....
¿Podría ser algo similar a esto?
Opciones="saludar salir"select opt in $Opciones; do
if [ "$opt" = "saludar" ]; then
echo dome
echo Hola dijite su nombre
read nombre
echo hola $nombre
elif [ "$opt" = "salir" ]; then
echo done
exit
else
echo Seleccion incorrecta
fi
done
Que diferencia de codigo con el que te han puesto finalmente... De todas formas sigo pensando que deberias buscar informacion de bucles, y sin duda alguna de Shell Script.
Ya que los comienzos son duros, aunque hoy en dia con internet hubieras tenido miles de ejemplos de lo que quieres hacer, con una rapida busqueda o a la segunda o a la tercera. De cualquier forma aun parece que te queda camino para recorrer en tu script, ¡perfecto! mas retos ;) .
Ah!!! una nota:
...que programar (o hacer scripts en este caso) no va de aporrear teclas.
Eso seria antes... vete aqui y nada mas ver la pantalla negra... aporrea... veras que sorpresa ;)
Un Saludo
Mose,
Asi lo tenia desde el principio, pero lo que pasaba, es que se salia del todo del script
Un saludo