Я пишу скрипт, который отображает параметры ввода в цикле while, предоставленном функцией, user_input()
и устанавливает значения в зависимости от ввода пользователя, затем я вызываю другую функцию user_info()
. Если пользователь допустил ошибку, я пытаюсь предложить ему вернуться назад, чтобы исправить свой ввод. Так что если пользователь $var
по ошибке установил значение "Да", он может вернуться назад и сбросить параметр! Предполагая, что пользователь сбросил $var
значение "Нет", есть ли способ не возобновлять работу с code (2)
, а перейти к elif
оператору и выполнить code (3)
? Если вопрос не ясен, я могу опубликовать свой код, чтобы сделать его более понятным. Большое спасибо:
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
}
решение1
Я думаю, что нашел решение, добавив return после каждого вызова функции, user_input()
как здесь, пожалуйста, поправьте меня, если я ошибся. Большое спасибо:
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
}