retomar a execução de um script após a chamada de função

retomar a execução de um script após a chamada de função

Estou escrevendo um script que exibe opções de entrada em um loop while fornecido por uma função user_input()e define valores dependendo da entrada do usuário, então chamo outra função user_info(). Se um usuário cometeu um erro, estou tentando oferecer a ele que volte para corrigir sua entrada. Portanto, se um usuário definir $varpor engano como "Sim", ele poderá voltar e redefinir a opção! Supondo que o usuário tenha sido redefinido $varcomo "Não", existe alguma maneira de não retomar em code (2), em vez de pular para a elifinstrução e executar code (3)? Se a pergunta não estiver clara, posso postar meu código para torná-lo mais claro. Muito obrigado:

user_input(){
    while true; do
        input option $var
    done
    user_info
}

user_info(){
    some code
    if [ "${var}" = "Yes" ]; then
        code (1)
        if [ "${option}" = "back" ]; then
            user_input
        fi
        code (2)
    elif [ "${var}" = "No" ]; then
        code (3)
    fi
}

Responder1

Acho que encontrei uma solução adicionando return após cada chamada da user_input()função como esta, corrija-me se cometi um erro. Muito obrigado:

user_input(){
    while true; do
        input option $var
    done
    user_info
}

user_info(){
    some code
    if [ "${var}" = "Yes" ]; then
        code (1)
        if [ "${option}" = "back" ]; then
            user_input
            return
        fi
        code (2)
    elif [ "${var}" = "No" ]; then
        code (3)
    fi
}

informação relacionada