expr
expr [EXPRESSION]
expr [OPTIONS]
Print the value of EXPRESSION
to standard output
Options
--version
-
output version information and exit
--help
-
display this help and exit
Print the value of EXPRESSION
to standard output. A blank line below
separates increasing precedence groups.
EXPRESSION
may be:
ARG1 | ARG2
:ARG1
if it is neither null nor 0, otherwiseARG2
ARG1 & ARG2
:ARG1
if neither argument is null or 0, otherwise 0ARG1 < ARG2
:ARG1
is less thanARG2
ARG1 <= ARG2
:ARG1
is less than or equal toARG2
ARG1 = ARG2
:ARG1
is equal toARG2
ARG1 != ARG2
:ARG1
is unequal toARG2
ARG1 >= ARG2
:ARG1
is greater than or equal toARG2
ARG1 > ARG2
:ARG1
is greater thanARG2
ARG1 + ARG2
: arithmetic sum ofARG1
andARG2
ARG1 - ARG2
: arithmetic difference ofARG1
andARG2
ARG1 * ARG2
: arithmetic product ofARG1
andARG2
ARG1 / ARG2
: arithmetic quotient ofARG1
divided byARG2
ARG1 % ARG2
: arithmetic remainder ofARG1
divided byARG2
STRING : REGEXP
: anchored pattern match ofREGEXP
inSTRING
match STRING REGEXP
: same asSTRING : REGEXP
substr STRING POS LENGTH
: substring ofSTRING
,POS
counted from 1index STRING CHARS
: index inSTRING
where anyCHARS
is found, or 0length STRING
: length ofSTRING
+ TOKEN
: interpretTOKEN
as a string, even if it is a keyword likematch
or an operator like/
( EXPRESSION )
: value ofEXPRESSION
Beware that many operators need to be escaped or quoted for shells. Comparisons are arithmetic if both ARGs are numbers, else lexicographical. Pattern matches return the string matched between ( and ) or null; if ( and ) are not used, they return the number of characters matched or 0.
Exit status is 0
if EXPRESSION
is neither null nor 0
, 1
if EXPRESSION
is null or 0
, 2
if EXPRESSION
is syntactically invalid, and 3
if an
error occurred.
Environment variables:
EXPR_DEBUG_TOKENS=1
: dump expression's tokensEXPR_DEBUG_RPN=1
: dump expression represented in reverse polish notationEXPR_DEBUG_SYA_STEP=1
: dump each parser stepEXPR_DEBUG_AST=1
: dump expression represented abstract syntax tree
Examples
Get the length of a specific string:
expr length "{{string}}"
Get the substring of a string with a specific length:
expr substr "{{string}}" {{from}} {{length}}
Match a specific substring against an anchored pattern:
expr match "{{string}}" '{{pattern}}'
Get the first char position from a specific set in a string:
expr index "{{string}}" "{{chars}}"
Calculate a specific mathematic expression:
expr {{expression1}} {{+|-|*|/|%}} {{expression2}}
Get the first expression if its value is non-zero and not null otherwise get the second one:
expr {{expression1}} \| {{expression2}}
Get the first expression if both expressions are non-zero and not null otherwise get zero:
expr {{expression1}} \& {{expression2}}
The examples are provided by the tldr-pages project under the CC BY 4.0 License.
Please note that, as uutils is a work in progress, some examples might fail.