
Ich habe ein komplexes menügesteuertes Programm mit folgendem Inhalt:
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
(Stellen Sie es sich als eine einfache To-Do-Listen-Anwendung vor, in der Sie To-Do-Listenelemente hinzufügen/löschen/bearbeiten/anzeigen können. Hinzufügen, Löschen usw. sind also die Aktionen.)
Einige dieser action
s sind etwas lang, daher ist es möglich, dass der Benutzer mitten in der Aktion seine Meinung ändert und zur Hauptaufforderung zurückkehren möchte, um eine andere Aktion auszuprobieren.
Meine Frage ist, wie man dem Benutzer ermöglicht, zur Haupteingabeaufforderung zurückzukehren. Ich hatte auf einen einfachen Tastendruck-Handler gehofft, der es dem Benutzer ermöglicht, an den Anfang von zu springen select
. Ist das möglich oder gibt es andere Methoden?
Antwort1
Sie könnten Ihr Hauptprogramm neu starten.
# User wants to return to main
exec main.sh
Dadurch wird Ihr aktuell ausgeführtes Skript entfernt und durch ersetzt main.sh
.
Beachten Sie, dass nur die exportierten Variablen in der neu gestarteten Version verfügbar sind main.sh
.