<Предыдущая | Содержание: | Следующая>
Простая арифметика
Обычные арифметические операторы перечислены в таблице ниже:
Таблица 34-3: Арифметические операторы
Описание оператора
Описание оператора
+ Дополнение
![]()
- вычитание
![]()
![]()
* Умножение
![]()
/ Целочисленное деление
![]()
** Возведение
![]()
% По модулю (остаток)
![]()
Большинство из них говорят сами за себя, но целочисленное деление и по модулю требуют дальнейшего обсуждения.
Поскольку арифметика оболочки работает только с целыми числами, результатом деления всегда являются целые числа:
[я @ linuxbox ~] $ эхо $ ((5/2))
2
[я @ linuxbox ~] $ эхо $ ((5/2))
2
Это делает определение остатка в операции деления более важным:
[я @ linuxbox ~] $ эхо $ ((5% 2))
1
[я @ linuxbox ~] $ эхо $ ((5% 2))
1
Используя операторы деления и по модулю, мы можем определить, что 5, деленное на 2, дает 2 с остатком 1.
Вычисление остатка полезно в циклах. Это позволяет выполнять операцию с заданными интервалами во время выполнения цикла. В приведенном ниже примере мы отображаем строку чисел, выделяя каждое число, кратное 5:
#! / Bin / Баш
# по модулю: продемонстрировать оператор по модулю для ((i = 0; i <= 20; i = i + 1)); делать
остаток = $ ((i% 5))
если ((остаток == 0)); затем printf "<% d>" $ i
еще
printf "% d" $ i
фи сделано
printf "\ n"
#! / Bin / Баш
# по модулю: продемонстрировать оператор по модулю для ((i = 0; i <= 20; i = i + 1)); делать
остаток = $ ((i% 5))
если ((остаток == 0)); затем printf "<% d>" $ i
еще
printf "% d" $ i
фи сделано
printf "\ n"
При выполнении результаты выглядят так:
[я @ linuxbox ~] $ форма
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>
[я @ linuxbox ~] $ форма
<0> 1 2 3 4 <5> 6 7 8 9 <10> 11 12 13 14 <15> 16 17 18 19 <20>
Документация