Глава 15. Арифметические подстановки

Арифметические подстановки -- это мощный инструмент, предназначенный для выполнения арифметических операций в сценариях. Перевод строки в числовое выражение производится с помощью обратных одиночных кавычек, двойных круглых скобок или предложения let.

Вариации

Арифметические подстановки в обратных одиночных кавычках (часто используются совместно с командой expr)
z=`expr $z + 3`            # Команда 'expr' вычисляет значение выражения.


Арифметические подстановки в двойных круглых скобках, и предложение let

В арифметических подстановках, обратные одиночные кавычки могут быть заменены на двойные круглые скобки -- $((...)) и $((...)) или очень удобной конструкцией, с применением предложения let.

z=$(($z+3))
z=$((z+3)                                   #  Тоже верно.
                                            #  Внутри двойных круглых скобок,
                                            #+ переменные разыменовываются
                                            #+ автоматически.
        
# $((EXPRESSION)) -- это подстановка арифметического выражения.  #  Не путайте с
                                                                 #+ подстановкой команд.

# Внутри двойных круглых скобок допускается выполнение арифметических 
# действий без использования оператора присваивания

  n=0
  echo "n = $n"                             # n = 0

  (( n += 1 ))                              # Инкремент.
# (( $n += 1 )) это неверно!
  echo "n = $n"                             # n = 1


let z=z+3
let "z += 3"  # Кавычки позволяют вставлять пробелы
              #  Оператор 'let' вычисляет арифметическое выражение,
              #+ это не подстановка арифметического выражения.


Примеры арифметических подстановок в сценариях:

  1. Пример 12-9

  2. Пример 10-14

  3. Пример 25-1

  4. Пример 25-11

  5. Пример A-19