Инициализация переменной или изменение ее значения
Универсальный оператор присваивания, пригоден как для сравнения целых чисел, так и для сравнения строк.
![]() |
Пусть вас не смущает, что оператор присваивания ("="), по своему внешнему виду, совпадает с оператором сравнения (=).
|
сложение
вычитание
умножение
деление
возведение в степень
модуль (деление по модулю), возвращает остаток от деления
Этот оператор может применяться в алгоритмах генерации псевдослучайных чисел в заданном диапазоне (см. Пример 9-23 и Пример 9-26), для форматирования вывода на экран (см. Пример 25-15 и Пример A-7), и даже для генерации простых чисел (см. Пример A-18). На удивление часто операцию деления по модулю можно встретить в различных численных алгоритмах.
Пример 8-1. Наибольший общий делитель
"плюс-равно" (увеличивает значение переменной на заданное число)
let "var += 5" значение переменной var будет увеличено на 5.
"минус-равно" (уменьшение значения переменной на заданное число)
"умножить-равно" (умножить значение переменной на заданное число, результат записать в переменную)
let "var *= 4" значение переменной var будет увеличено в 4 раза.
"слэш-равно" (уменьшение значения переменной в заданное число раз)
"процент-равно" (найти остаток от деления значения переменной на заданное число, результат записать в переменную)
Арифметические операторы очень часто используются совместно с командами expr и let.
Пример 8-2. Арифметические операции
![]() |
Целые числа в Bash фактически являются длинными целыми (32-бит) со знаком, с диапазоном изменений от -2147483648 до 2147483647. Если в результате какой либо операции эти пределы будут превышены, то результат получится ошибочным.
Версия Bash 2.05b, поддерживает 64-ьитные целые числа. |
![]() |
Bash ничего не знает о существовании чисел с плавающей запятой. Такие числа, из-за наличия символа десятичной точки, он воспринимает как строки.
|
битовые операции. Битовые операции очень редко используются в сценариях командного интерпретатора. Их главное назначение, на мой взгляд, установка и проверка некоторых значений, читаемых из портов ввода-вывода и сокетов. "Битовые операции" гораздо более уместны в компилирующих языках программирования, таких как C и C++.
сдвигает на 1 бит влево (умножение на 2)
"сдвиг-влево-равно"
let "var <<= 2" значение переменной var сдвигается влево на 2 бита (умножается на 4)
сдвиг вправо на 1 бит (деление на 2)
"сдвиг-вправо-равно" (имеет смысл обратный <<=)
по-битовое И (AND)
"по-битовое И-равно"
по-битовое ИЛИ (OR)
"по-битовое ИЛИ-равно"
по-битовая инверсия
По-битовое отрицание
по-битовое ИСКЛЮЧАЮЩЕЕ ИЛИ (XOR)
"по-битовое ИСКЛЮЧАЮЩЕЕ-ИЛИ-равно"
логическое И (and)
![]() |
оператор &&, в зависимости от контекста, может так же использоваться в И-списках для построения составных команд. |
логическое ИЛИ (or)
![]() |
Bash производит проверку кода возврата КАЖДОГО из операндов в логических выражениях. |
Пример 8-3. Построение сложных условий, использующих && и ||
Операторы && и || могут использоваться и в арифметических вычислениях.
запятая
С помощью оператора запятая можно связать несколько арифметических в одну последовательность. При разборе таких последовательностей, командный интерпретатор вычисляет все выражения (которые могут иметь побочные эффекты) в последовательности и возвращает результат последнего.
Оператор запятая чаще всего находит применение в циклах for. См. Пример 10-12.
Последние комментарии