EXPR(1) | General Commands Manual | EXPR(1) |

`expr`

—
evaluate expression

`expr` |
expression |

`expr`

utility evaluates
`expr`

utility. Characters special to the
command interpreter must be escaped.
Operators are listed below in order of increasing precedence. Operators with
equal precedence are grouped within { } symbols.
`expr1`|`expr2`- Returns the evaluation of
`expr1`if it is neither an empty string nor zero; otherwise, returns the evaluation of`expr2`. `expr1``&`

`expr2`- Returns the evaluation of
`expr1`if neither expression evaluates to an empty string or zero; otherwise, returns zero. `expr1``{=, >, >=, <, <=, !=}`

`expr2`- Returns the results of integer comparison if both arguments are decimal integers; otherwise, returns the results of string comparison using the locale-specific collation sequence. The result of each comparison is 1 if the specified relation is true, or 0 if the relation is false.
`expr1``{+, -}`

`expr2`- Returns the results of addition or subtraction of decimal integer-valued arguments.
`expr1``{*, /, %}`

`expr2`- Returns the results of multiplication, integer division, or remainder of decimal integer-valued arguments.
`expr1``:`

`expr2`- The ‘
`:`

’ operator matches`expr1`against`expr2`, which must be a basic regular expression. The regular expression is anchored to the beginning of the string with an implicit ‘`^`

’. If the match succeeds and the pattern contains at least one regular expression subexpression “\(...\)”, the string corresponding to “\1” is returned; otherwise, the matching operator returns the number of characters matched. If the match fails and the pattern contains a regular expression subexpression the null string is returned; otherwise, returns 0. Note: the empty string cannot be matched usingexpr '' : '$'

`expr`

returns failure (0). To match the empty string, use a structure such as:expr X'' : 'X$'

`expr`

utility exits with one of the
following values:
- 0
- The expression is neither an empty string nor 0.
- 1
- The expression is an empty string or 0.
- 2
- The expression is invalid.
- >2
- An error occurred (such as memory allocation failure).

$ a=`expr $a + 1`

`//`

’ characters act to eliminate
ambiguity with the division operator:
$ expr "//$a" : '.*/\(.*\)'

$ expr $a : '.*'

`expr`

utility is compliant with the
IEEE Std 1003.1-2008
(“POSIX.1”) specification.
`expr`

utility first appeared in the
Programmer's Workbench (PWB/UNIX) and has supported regular expressions since
Version 7 AT&T UNIX. It was rewritten from
scratch for 386BSD-0.1 and again for
NetBSD 1.1.
August 16, 2017 | OpenBSD-current |