
У меня есть сложная программа с меню, работающая по следующим принципам:
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
.