Стандартная встроенная команда let оболочки Korn (POSIX) позволяет выполнять арифметические операции над целыми числами. Константы имеют формат [Основание]Число. Параметр Основание представляет собой десятичное число в диапазоне от 2 до 36 включительно, указывающее основание системы счисления. В параметре Число указывается число в этой системе. Если параметр Основание не указан, принимается значение 10.
Синтаксис, приоритет операторов и
ассоциативность операторов в арифметических выражениях подчиняются правилам
языка C. Поддерживаются все операторы, кроме двойного плюса
(++), двойного дефиса (--), вопросительного знака с
двоеточием (?:) и запятой (,). В следующей
таблице перечислены допустимые операторы оболочки Korn (POSIX) в порядке
убывания приоритета:
| Арифметические операторы оболочки Korn | |
| Оператор | Определение | 
| - | Унарный минус | 
| ! | Логическое отрицание | 
| ~ | Поразрядное отрицание | 
| * | Умножение | 
| / | Деление | 
| % | Остаток | 
| + | Сложение | 
| - | Вычитание | 
| <<, >> | Сдвиг влево, сдвиг вправо | 
| <=,>=, <>, ==, != | Сравнение | 
| & | Поразрядное И | 
| ^ | Поразрядное исключающее ИЛИ | 
| | | Поразрядное ИЛИ | 
| && | Логическое И | 
| || | Логическое ИЛИ | 
| = *=, /=, &= +=, -=, <<=, > >=, &=, ^=, |= | Присвоение | 
Многие арифметические операторы, такие как *, &, < и >, в оболочке Korn (POSIX) интерпретируются специальным образом. Такие символы должны быть заключены в кавычки. Например, для умножения текущего значения переменной y на 5 и присвоения нового значения переменной y укажите выражение:
let "y = y * 5"
Заключение выражения в кавычки отменяет специальное значение символа *.
Операции в команде let можно объединять в группы скобками. Например, в выражении:
let "z = q * (z - 10)"
переменная q будет умножено на уменьшенное на 10 значение переменной z.
Если необходимо вычислить только одно выражение, оболочка Korn (или POSIX) допускает альтернативную форму команды let. Оболочка рассматривает команды, заключенные в (( )), как выражения в кавычках. Таким образом, выражение
((x = x / 3))
let "x = x / 3"
На именованные параметры внутри арифметических выражений можно ссылаться просто по их имени, без какого-либо синтаксиса подстановки параметра. При этом значение параметра вычисляется как арифметическое выражение.
Внутреннее числовое представление именованного параметра можно указать с помощью флага -i специальной встроенной команды typeset. С флагом -i арифметические вычисления выполняются над каждым значением, присваиваемым именованному параметру. Если основание системы счисления не указано, оно определяется по первому присвоенному значению. Это основание применяется только при подстановке параметра.