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

0

Estou escrevendo um script que exibe opções de entrada em um loop while fornecido por uma função user_input() e defina valores dependendo da entrada do usuário, então eu chamo outra função user_info() . Se um usuário cometeu um erro, estou tentando oferecer a ele para voltar para corrigir sua entrada. Portanto, se um usuário definir $var por engano como "Sim", ele poderá voltar a redefinir a opção! Supondo que o usuário redefina $var para "Não", existe alguma maneira de não continuar em code (2) , em vez de ir para a instrução elif 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
}
    
por Max 29.10.2016 / 16:21

1 resposta

0

Acho que encontrei uma solução adicionando retorno após cada chamada da função user_input() dessa maneira. Corrija-me se eu cometer 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
}
    
por 29.10.2016 / 17:23

Tags