
Eu tenho um programa complexo baseado em menus nas seguintes linhas:
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
(Pense nele como um aplicativo simples de lista de tarefas onde você pode adicionar/excluir/editar/visualizar itens da lista de tarefas. Portanto, adicionar, excluir, etc. são as ações)
Alguns desses action
s são um pouco longos, então é possível que no meio da ação o usuário mude de ideia e deseje retornar ao prompt principal para tentar alguma outra ação.
Minha pergunta é como permitir que o usuário retorne ao prompt principal? Eu esperava por um manipulador de pressionamento de tecla simples que permitisse ao usuário pular para o topo do arquivo select
. É possível ou existem outros métodos?
Responder1
Você pode reiniciar seu programa principal.
# User wants to return to main
exec main.sh
Isso removerá o script em execução no momento e o substituirá por main.sh
.
Observe que apenas as variáveis exportadas estão disponíveis no arquivo main.sh
.