Como implementar o retorno ao menu de nível superior?

Como implementar o retorno ao menu de nível superior?

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 actions 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.

informação relacionada