Предыдущий урок: bash скрипты для начинающих — урок №2: Создание переменных.
В прошлый раз мы научились пользоваться переменными, сегодня мы узнаем, как в bash скрипте использовать арифметические операции. Мы рассмотрим оба варианта — операции над конкретными значениями и операции с переменными.
В чем особенность арифметики в bash?
Постоянная типизация переменных: В Bash переменные — это по сути строки, поэтому арифметические операции требуют специального синтаксиса и преобразования.
Поддержка базовых операторов: Bash поддерживает основные арифметические операторы, такие как +, -, *, /, % (остаток), а также побитовые операции.
Целочисленная арифметика: Bash по умолчанию работает только с целыми числами, то есть дробные или вещественные числа напрямую не поддерживаются. Для работы с ними нужно использовать внешние команды или дополнительные инструменты.
Арифметические операции
Подготовим новый файл скрипта и сделаем его исполняемым:
[root@waky bash_practice]# touch script_3.sh
[root@waky bash_practice]# chmod +x script_3.sh
[root@waky bash_practice]#
Шаг 1: Используем численные значения
Запишем в файл script_3.sh следующий код:
#!/bin/bash
echo 1+1
echo $((1+1))
echo $((1-1))
echo $((2*2))
echo $((4/2))
echo $((5/2))
echo $((5%2))
Запустим скрипт и проверим результат:
[root@waky bash_practice]# ./script_3.sh
1+1
2
0
4
2
2
1
[root@waky bash_practice]#
Первая строка выведена в том же виде, в каком и была передана команде echo. Bash не различает цифры и буквы, в таком виде это все текст.
Для того, чтобы совершить арифметическую операцию аргументы нужно заключить в двойные скобки и выделить их знаком $.
Bash знает все операции с целыми числами:
+ — сложение
— — вычитание
* — умножение
/ — целочисленное деление
% — остаток от деления
Результат выполнения операций приведенных в скрипте фактически очевиден, лишний раз обращу внимание, что результат деления 5/2 будет 2, так как все кроме целой части деления отбрасывается.
Шаг 2: Используем переменные
Математические операции над переменными мало чем отличаются. Перепишем наш скрипт, добавив в него переменные:
#!/bin/bash
a=10
b=3
echo $((a+b))
echo $((a-b))
echo $((a*b))
echo $((a/b))
echo $((a%b))
echo $((a+1*b))
echo $((a-1/b))
Проверим результат:
[root@waky bash_practice]# ./script_3.sh
13
7
30
3
1
13
10
[root@waky bash_practice]#
Результат ожидаем, но проговорю, как получилось последнее число. 1/3 — целая часть 0, в итоге 10 — 0.
Итоги:
Мы на примерах разобрали, как работают арифметические операции в bash. И хотя возможности ограничены работой с целыми числами, математические операции широко используются в скриптах.
Следующий урок: bash скрипты для начинающих — урок №4: Использование if else условий.