Назад | Перейти на главную страницу

Правильный способ увеличения локальных переменных в Shell

Недавно я начал писать оболочку. Я хочу увеличить локальную переменную $COUNTER но я не уверен, что и зачем мне использовать.

COUNTER=`expr $COUNTER + 1`

COUNTER=$((COUNTER+1))

Первый как-то работает только иногда, второй работает всегда. Это почему? Зачем нужны двойные скобки во втором?

Есть много вариантов достижения желаемого:

COUNTER=`expr $COUNTER + 1`

COUNTER=$((COUNTER+1))

COUNTER =$[COUNTER+1]

COUNTER =$[$COUNTER+1]

let COUNTER = COUNTER +1

let COUNTER++

Все команды должны делать одно и то же, например увеличивать СЧЕТЧИК на 1