関数呼び出し後のスクリプト実行の再開

関数呼び出し後のスクリプト実行の再開

関数が提供するwhileループに入力オプションを表示し、user_input()ユーザー入力に応じて値を設定してから、他の関数を呼び出すスクリプトを作成していますuser_info()。ユーザーが間違えた場合は、戻って入力内容を修正するよう努めます。したがって、ユーザーが$var誤って「はい」に設定した場合は、もう一度戻ってオプションをリセットできます。ユーザーが「いいえ」にリセットすると仮定すると、続行せずにそのステートメントにジャンプして実行する$var方法はありますか?質問が明確でない場合は、コードを投稿してより明確にすることができます。ありがとう:code (2)elifcode (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
}

関連情報