- expr
-
expr — программа в UNIX‐подобных ОС, вычисляющая значение выражения и выводящая результат на стандартный вывод. Каждая лексема выражения должна быть отдельным аргументом. Операнды могут быть как числами, так и строками. Строковые операнды не надо заключать в кавычки, хотя это может быть и необходимо сделать для предотвращения интерпретации их шеллом. expr определяет тип операнда (целое число или строка) по применяемой к нему операции.
Использование
- expr выражение…
- expr {--help,--version}
Поддерживаемые операторы
Действительны следующие операторы (в порядке возрастания приоритета):
- | — дизъюнкция
- & — конъюнкция
- < <= = == != >= > — сравнить аргументы и возвратить 1, если операция отношения верна, и 0 в противном случае. (== является синонимом =.) expr пытается привести оба аргумента к числовому типу и произвести числовое сравнение; если приведение не удаётся произвести хотя бы для одного аргумента, то производится лексикографическое (строковое) сравнение
- + - — произвести указанные арифметические операции. Перед этим оба аргумента приводятся к числовому типу; если это нельзя сделать, выдаётся сообщение об ошибке
- * / % — произвести указанные арифметические операции («%» — это операция деления по модулю, как в C). Перед этим оба аргумента приводятся к числовому типу; если это нельзя сделать, выдаётся сообщение об ошибке
- : — произвести поиск по шаблону. Оба аргумента приводятся к строковому типу, при этом второй считается регулярным выражением с неявно добавленным символом «^» в начале. После этого в первом аргументе производится поиск по второму в качестве шаблона. Если найдено соответствие и часть строки выделена символами «(» и «)», то значением операции : является эта часть; в противном случае возвращается целое число, равное количество символов, соответствующих шаблону. Если соответствие не найдено и часть строки выделена символами «(» и «)», то результатом операции : является пустая строка, в противном случае 0. При задании шаблона может быть использована только одна пара скобок «(» и «)»
Дополнительно распознаются следующие ключевые слова:
- match строка рег_выр — ещё один способ произвести поиск по шаблону. Это выражение идентично «строка : регулярное_выражение»
- substr строка позиция длина — возвращает подстроку в строке, начинающуюся с указанной позиции и не больше указанной длины. Если позиция либо длина отрицательны или не являются числами, вернуть пустую строку
- index строка класс-символов — возвращает позицию в строке, в которой был впервые найден символ из класса-символов. Если ни одного такого символа не было найдено, вернуть 0
- length строка — возвращает длину строки
Для группировки можно применять круглые скобки. В качестве строковых операндов нельзя использовать ключевые слова.
Ссылки
expr(1)
— страница справки man по пользовательским командам GNU/Linux (англ.) (см. GNU Coreutils)expr(1)
— страница справки man по пользовательским командам OpenBSD (англ.)expr(1)
— страница справки man по пользовательским командам FreeBSD (англ.)
Команды Unix POSIX.1-2008 Утилиты POSIX.1-2008 admin • alias • ar • asa • at • awk • basename • batch • bc • bg • c99 • cal • cat • cd • cflow • chgrp • chmod • chown • cksum • cmp • comm • command • compress • cp • crontab • csplit • ctags • cut • cxref • date • dd • delta • df • diff • dirname • du • echo • ed • env • ex • expand • expr • false • fc • fg • file • find • fold • fort77 • fuser • gencat • get • getconf • getopts • grep • hash • head • iconv • id • ipcrm • ipcs • jobs • join • kill • lex • link • ln • locale • localedef • logger • logname • lp • ls • m4 • mailx • make • man • mesg • mkdir • mkfifo • more • mv • newgrp • nice • nl • nm • nohup • od • paste • patch • pathchk • pax • pr • printf • prs • ps • pwd • qalter • qdel • qhold • qmove • qmsg • qrerun • qrls • qselect • qsig • qstat • qsub • read • renice • rm • rmdel • rmdir • sact • sccs • sed • sh • sleep • sort • split • strings • strip • stty • tabs • tail • talk • tee • test • time • touch • tput • tr • true • tsort • tty • type • ulimit • umask • unalias • uname • uncompress • unexpand • unget • uniq • unlink • uucp • uudecode • uuencode • uustat • uux • val • vi • wait • wc • what • who • write • xargs • yacc • zcat GNU Coreutils Файловые утилиты chgrp • chown • chmod • cp • dd • df • dir • dircolors • install • ln • ls • mkdir • mkfifo • mknod • mv • rm • rmdir • shred • sync • touch • vdir Текстовые утилиты cat • cksum • comm • csplit • cut • expand • fmt • fold • head • join • md5sum • nl • od • paste • ptx • pr • sha1sum • sort • split • sum • tac • tail • tr • tsort • unexpand • uniq • wc Shell-утилиты basename • chroot • date • dirname • du • echo • env • expr • factor • false • groups • hostid • id • link • logname • nice • nohup • pathchk • pinky • printenv • printf • pwd • readlink • seq • sleep • stat • stty • tee • test • true • tty • uname • unlink • users • who • whoami • yes Категория:- Утилиты UNIX
Wikimedia Foundation. 2010.