While ループ/If 文の問題

While ループ/If 文の問題

2回目の投稿者、まだ初心者です。ユーザーにお茶を提供する短いプログラムを書くという課題があります。アイデアは、while ループと if 文

ユーザーに「お茶を飲みますか?」と尋ねます。ユーザーが「はい」と応答すると、スクリプトは終了します。

ユーザーが「いいえ [N]」と答えると、スクリプトは「よろしいですか?」と尋ねます。あと4回これら 4 回の繰り返しのいずれかの時点でユーザーが Yes [Y] と答えると、スクリプトは終了します。

これまでのスクリプトは次のとおりです。実行して、Yes と答えるところまではうまくいきましたが、ループ可能な「No」が問題を引き起こしています。現在はまったく実行できないようです。次のメッセージが表示されます。

`syntax error: near unexpected token 'else'`

ここに私のスクリプトの全文があります。繰り返しますが、私はこの分野に非常に不慣れなので、どんなフィードバックでも大歓迎です。

#!/bin/bash
while [[ $refusals != 4 ]]
do
    echo "Will you have a cup of tea? [Y/N]"
    read response
    $refusals = 0

    if [[ $response = Y ]] || [[ $response = y ]]
    then
        $refusals = 4
        echo "Great, I'll make tea now!"
        exit
    elif [[ $response = N ]] || [[ $response = n ]]
        $refusals = [[ $refusals+1 ]]
        echo "Are you sure?"
        read response

    else
        echo "Fine, be that way."
        exit

fi

done

関連情報