expr
expr — программа в UNIX‐подобных ОС, вычисляющая значение выражения и выводящая результат на стандартный вывод. Каждая лексема выражения должна быть отдельным аргументом. Операнды могут быть как числами, так и строками. Строковые операнды не надо заключать в кавычки, хотя это может быть и необходимо сделать для предотвращения интерпретации их шеллом. expr определяет тип операнда (целое число или строка) по применяемой к нему операции.
Использование
- expr выражение…
- expr {--help,--version}
Поддерживаемые операторы
Действительны следующие операторы (в порядке возрастания приоритета):
- | — дизъюнкция
- & — конъюнкция
- < <= = == != >= > — сравнить аргументы и возвратить 1, если операция отношения верна, и 0 в противном случае. (== является синонимом =.) expr пытается привести оба аргумента к числовому типу и произвести числовое сравнение; если приведение не удаётся произвести хотя бы для одного аргумента, то производится лексикографическое (строковое) сравнение
- + - — произвести указанные арифметические операции. Перед этим оба аргумента приводятся к числовому типу; если это нельзя сделать, выдаётся сообщение об ошибке
- * / % — произвести указанные арифметические операции («%» — это операция деления по модулю, как в C). Перед этим оба аргумента приводятся к числовому типу; если это нельзя сделать, выдаётся сообщение об ошибке
- : — произвести поиск по шаблону. Оба аргумента приводятся к строковому типу, при этом второй считается регулярным выражением с неявно добавленным символом «^» в начале. После этого в первом аргументе производится поиск по второму в качестве шаблона. Если найдено соответствие и часть строки выделена символами «(» и «)», то значением операции : является эта часть; в противном случае возвращается целое число, равное количество символов, соответствующих шаблону. Если соответствие не найдено и часть строки выделена символами «(» и «)», то результатом операции : является пустая строка, в противном случае 0. При задании шаблона может быть использована только одна пара скобок «(» и «)»
Дополнительно распознаются следующие ключевые слова:
- match строка рег_выр — ещё один способ произвести поиск по шаблону. Это выражение идентично «строка : регулярное_выражение»
- substr строка позиция длина — возвращает подстроку в строке, начинающуюся с указанной позиции и не больше указанной длины. Если позиция либо длина отрицательны или не являются числами, вернуть пустую строку
- index строка класс-символов — возвращает позицию в строке, в которой был впервые найден символ из класса-символов. Если ни одного такого символа не было найдено, вернуть 0
- length строка — возвращает длину строки
Для группировки можно применять круглые скобки. В качестве строковых операндов нельзя использовать ключевые слова.
Ссылки
- — страница справки man в GNU/Linux <span class="ref-info" title="{{{Expansion depth limit exceeded}}}" style="font-size:85%; cursor:help; margin-left:0.2em; color:#888;">({{{Expansion depth limit exceeded}}}) (см. GNU Coreutils)
- — страница справки man по пользовательским командам OpenBSD <span class="ref-info" title="{{{Expansion depth limit exceeded}}}" style="font-size:85%; cursor:help; margin-left:0.2em; color:#888;">({{{Expansion depth limit exceeded}}})
- — страница справки man по пользовательским командам FreeBSD <span class="ref-info" title="{{{Expansion depth limit exceeded}}}" style="font-size:85%; cursor:help; margin-left:0.2em; color:#888;">({{{Expansion depth limit exceeded}}})
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....