Глава 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