Подстановка результатов арифметических выражений
Командная оболочка поддерживает также подстановку результатов арифметических выражений. Это позволяет использовать командную строку как калькулятор:
[me@linuxbox ~]$ echo $((2 + 2))
4
Для подстановки арифметических выражений используется следующий формат:
$((выражение))
где выражение — это арифметическое выражение, состоящее из значений и арифметических операторов.
Механизм подстановки арифметических выражений позволяет использовать только целые числа (невещественные), зато поддерживает множество арифметических операций. В табл. 7.1 перечислены некоторые из поддерживаемых операторов.
Таблица 7.1. Арифметические операторы
Оператор
Описание
+
Сложение
-
Вычитание
*
Умножение
/
Деление (но помните: из-за того, что подстановка поддерживает только целочисленную арифметику, результатом будет целое число)
%
Деление по модулю или остаток от деления
**
Возведение в степень
Пробелы в арифметических выражениях не играют роли, а выражения могут содержать вложенные выражения. Например, умножение 52 на 3:
[me@linuxbox ~]$ echo $(($((5**2)) * 3))
75
Для группировки подвыражений допускается использование одиночных круглых скобок. С помощью этого приема выражение, приведенное выше, можно переписать, как показано ниже, и получить тот же результат, но при этом будет использоваться одна операция подстановки вместо двух:
[me@linuxbox ~]$ echo $(((5**2) * 3))
75
Следующий пример демонстрирует использование операторов деления и получения остатка. Обратите внимание, как действует целочисленное деление:
[me@linuxbox ~]$ echo Пять разделить на два будет $((5/2))
Пять разделить на два будет 2
[me@linuxbox ~]$ echo и $((5%2)) в остатке.
и 1 в остатке.
Подстановка результатов арифметических выражений подробнее будет рассматриваться в главе 34.