НАЗВАНИЕ
expr - обработка аргументов как выражений
СИНТАКСИС
expr аргумент ...
ОПИСАНИЕ
Команда expr трактует свои аргументы как выражения. Результат записывается на стандартный вывод. Операнды выражения должны быть разделены пробелами. Символы, имеющие для shell'а специальный смысл, должны быть экранированы. Заметим, что 0 возвращается в качестве числа, а не для обозначения пустой цепочки символов. Аргументы, содержащие пробелы или другие специальные символы, должны быть заключены в кавычки. Перед целыми числами может стоять знак минус. Внутреннее представление целых чисел - 32-битное, в дополнительном коде.
Ниже приведен список знаков операций в порядке возврастания приоритетов, операции с равным приоритетом заключены в фигурные скобки. Перед символами, которые должны быть экранированы, стоит \.
выражение \| выражение Если первое выражение не пустое и не нулевое, то оно служит результатом; в противном случае - второе выражение.
выражение \& выражение Если оба выражения не пустые и не нулевые, то результатом служит первое выражение; в противном случае - 0.
выражение { =, \>, \>=, \ Если оба выражения - целые, они сравниваются как числа; в противном случае - как цепочки символов. Если условие истинно, результатом служит 1; в противном случае - 0.
выражение { +, - } выражение Сложение и вычитание целочисленных аргументов.
выражение { \*, /, % } выражение Умножение, деление и получение остатка от деления целочисленных аргументов.
выражение : выражение Оператор сопоставления : сопоставляет первый аргумент со вторым, который должен быть регулярным выражением. Синтаксис регулярного выражения тот же, что и в редакторе , за исключением того, что все шаблоны трактуются как "закрепленные" и символ ^ не имеет специального значения. Обычно оператор сопоставления возвращает число успешно сопоставленных символов (0 при неудаче). Можно применять конструкцию \( ... \), чтобы выделить часть первого аргумента.
ПРИМЕРЫ
a=`expr $a + 1`