私は、関数によって提供される 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
}