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 $var
por error "Sí", ¡puede regresar y restablecer la opción! Suponiendo que el usuario restablezca $var
el valor "No", ¿hay alguna forma de no continuar en code (2)
, en lugar de saltar a la elif
declaració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
}