EXPR(1) BSD Reference Manual EXPR(1)

expr- evaluate expression

exprexpression

Theexprutility evaluatesexpressionand writes the result on standard output. All operators are separate arguments to theexprutility. Charac- ters 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|expr2Returns the evaluation ofexpr1if it is neither an empty string nor zero; otherwise, returns the evaluation ofexpr2.expr1&expr2Returns the evaluation ofexpr1if neither expression evaluates to an empty string or zero; otherwise, returns zero.expr1{=, >, >=, <, <=, !=}expr2Returns the results of integer comparison if both arguments are integers; otherwise, returns the results of string comparison us- ing 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{+, -}expr2Returns the results of addition or subtraction of integer-valued arguments.expr1{*, /, %}expr2Returns the results of multiplication, integer division, or remainder of integer-valued arguments.expr1 : expr2The ':' operator matchesexpr1againstexpr2, which must be a regular expression. The regular expression is anchored to the be- ginning of the string with an implicit '^'. If the match succeeds and the pattern contains at least one regu- lar 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 using expr '' : '$' This is because the returned number of matched characters (zero) is indistinguishable from a failed match, soexprreturns failure (0). To match the empty string, use a structure such as: expr X'' : 'X$' Parentheses are used for grouping in the usual manner.

$ a=`expr $a + 1` Add 1 to the variablea. $ expr //$a : '.*/\(.*\)' Return the filename portion of a pathname stored in variablea. The '//' characters act to eliminate ambiguity with the division operator. $ expr $a : '.*' Return the number of characters in variablea.

Theexprutility 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).

test(1)

Theexprutility conforms to IEEE Std 1003.2 ("POSIX.2"). MirBSD #10-current July 3, 1993 1