expr(1)
Name
expr − evaluate expressions
Syntax
expr arg...
Description
The arguments are taken as an expression. After evaluation, the result is written on the standard output. Each token of the expression is a separate argument.
The operators and keywords are listed below. The list is in order of increasing precedence, with equal precedence operators grouped.
expr | expr Yields the first expr if it is neither null nor 0. Otherwise yields the second expr.
expr & expr Yields the first expr if neither expr is null or 0. Otherwise yields 0.
expr relop expr The relop is one of < <= = != >= > and yields 1 if the indicated comparison is true, ’0’ if false. The comparison is numeric if both expr are integers, otherwise lexicographic.
expr + expr
expr - expr
Yields addition or subtraction of the arguments.
expr * expr
expr / expr
expr % expr
Yields multiplication, division, or remainder of the arguments.
expr : expr The matching operator compares the string first argument with the regular expression second argument; regular expression syntax is the same as that of ed(.). The \(...\) pattern symbols can be used to select a portion of the first argument. Otherwise, the matching operator yields the number of characters matched (’0’ on failure).
( expr ) parentheses for grouping.
Examples
The first example adds 1 to the Shell variable a:
a=`expr $a + 1`
The second example finds the file name part (least significant part) of the pathname stored in variable a,
expr $a : ´.*/\(.*\)´ ´|´ $a
Note the quoted Shell metacharacters.
Diagnostics
The expr command returns the following exit codes:
0The expression is neither null nor ’0’.
1The expression is null or ’0’.
2The expression is invalid.