reanudar la ejecución de un script después de la llamada a la función

reanudar la ejecución de un script después de la llamada a la función

Estoy escribiendo un script que muestra opciones de entrada en un bucle while proporcionado por una función user_input()y establece valores según la entrada del usuario, luego llamo a otra función user_info(). Si un usuario cometió un error, intento ofrecerle que regrese para corregir su entrada. Entonces, si un usuario configura $varpor error "Sí", ¡puede regresar y restablecer la opción! Suponiendo que el usuario restablezca $varel valor "No", ¿hay alguna forma de no continuar en code (2), en lugar de saltar a la elifdeclaración y ejecutar code (3)? Si la pregunta no está clara, puedo publicar mi código para aclararla. Muchas gracias:

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
}

Respuesta1

Creo que encontré una solución agregando retorno después de cada llamada de la user_input()función como esta, corríjame si cometí un error. Muchas gracias:

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
}

información relacionada