bash скрипты для начинающих — урок №3 Арифметические операции.

Предыдущий урок: 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 условий.