Избавьтесь от некоторых знаков доллара перед именами переменных. Они не обязательны внутри арифметического c контекста, которым является ((...))
. С левой стороны присваивания они не просто необязательны, они запрещены, потому что =
нужно имя переменной слева, а не ее значение.
Также $((...))
должно быть простым ((...))
без начального знака доллара. Знак доллара фиксирует результат выражения и пытается выполнить его как команду. Он попытается выполнить команду с именем 0
или 5
или любым другим вычисляемым значением.
Вы можете написать:
((total = $total + $choice))
((count = $count + 1))
или:
((total = total + choice))
((count = count + 1))
или даже:
((total += choice))
((count += 1))