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


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

Вариации

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


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

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

  1. z=$(($z+3))
  2. z=$((z+3)                                   #  Тоже верно.
  3.                                             #  Внутри двойных круглых скобок,
  4.                                             #+ переменные разыменовываются
  5.                                             #+ автоматически.
  6.        
  7. # $((EXPRESSION)) — это подстановка арифметического выражения.  #  Не путайте с
  8.                                                                  #+ подстановкой команд.
  9. # Внутри двойных круглых скобок допускается выполнение арифметических
  10. # действий без использования оператора присваивания
  11.   n=0
  12.   echo "n = $n"                             # n = 0
  13.   (( n += 1 ))                              # Инкремент.
  14. # (( $n += 1 )) это неверно!
  15.   echo "n = $n"                             # n = 1
  16. let z=z+3
  17. let "z += 3"  # Кавычки позволяют вставлять пробелы
  18.               #  Оператор 'let' вычисляет арифметическое выражение,
  19.               #+ это не подстановка арифметического выражения.


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

  1. Пример 12-9

  2. Пример 10-14

  3. Пример 25-1

  4. Пример 25-11

  5. Пример A-19