
Tengo un programa complejo basado en menús del siguiente modo:
echo "Navigate through the following choices when you get the #? prompt: "
options=("Action 1" "Action 2" ...)
select $opt in "${options[@]}"
do
case $opt in
"Action 1")
./action1.sh
;;
"Action 2")
./action1.sh
;;
...
esac
done
(Piense en ello como una aplicación simple de lista de tareas pendientes donde puede agregar/eliminar/editar/ver elementos de la lista de tareas pendientes. Entonces, agregar, eliminar, etc. son las acciones)
Algunos de estos action
mensajes son un poco largos, por lo que es posible que a mitad de la acción, el usuario cambie de opinión y desee volver al mensaje principal para probar alguna otra acción.
Mi pregunta es ¿cómo permitir que el usuario regrese al mensaje principal? Esperaba un controlador de pulsación de teclas simple que permitiera al usuario saltar a la parte superior de select
. ¿Es posible o existen otros métodos?
Respuesta1
Podrías reiniciar tu programa principal.
# User wants to return to main
exec main.sh
Esto eliminará el script que se está ejecutando actualmente y lo reemplazará con main.sh
.
Tenga en cuenta que sólo las variables que se exportan están disponibles en el archivo recién iniciado main.sh
.