Как реализовать возврат в меню верхнего уровня?

Как реализовать возврат в меню верхнего уровня?

У меня есть сложная программа с меню, работающая по следующим принципам:

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

(Думайте об этом как о простом приложении для списка дел, где вы можете добавлять/удалять/редактировать/просматривать элементы списка дел. Таким образом, добавление, удаление и т. д. — это действия.)

Некоторые из этих actionподсказок немного длинные, поэтому вполне возможно, что на полпути к выполнению действия пользователь передумает и захочет вернуться к главному приглашению, чтобы попробовать выполнить какое-то другое действие.

Мой вопрос в том, как разрешить пользователю вернуться обратно к главному приглашению? Я надеялся на простой обработчик нажатия клавиш, который позволит пользователю перейти к началу select. Возможно ли это или есть другие методы?

решение1

Вы можете перезапустить основную программу.

 # User wants to return to main
 exec main.sh

Это удалит текущий запущенный скрипт и заменит его на main.sh.

Обратите внимание, что в новом запущенном файле доступны только экспортированные переменные main.sh.

Связанный контент