Evaluate expression.
expr evaluates expression and writes the result to standard output.

      expr expression

     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
	     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 integer-valued

     expr1 {*, /, %} expr2
	     Returns the results of multiplication, integer division, or
	     remainder of integer-valued arguments.

     expr1 : expr2
	     The `:' operator matches expr1 against expr2, which must be a
	     regular expression.  The regular expression is anchored to the
	     beginning of  the string with an implicit `^'.  expr expects
	     "basic" regular expressions, see re_format(7) for more informa-
	     tion on regular expressions.

	     If the match succeeds and the pattern contains at least one regu-
	     lar expression subexpression `\(...\)', the string correspond-
	     ing 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 0.

     Parentheses are used for grouping in the usual manner.


# A partial match will return the number of characters that match:
$ expr ss64 : ss6

# The condition in string 2 must entirely match string 1
$ expr ss64 : ss7

# Adding numbers
$ expr 5 + 2

# When multiplying the * has to be escaped
$ expr 5 \* 3

# Incrementing a variable (arithmetic expansion)
$ demo=1
$ demo=`expr $demo + 1`
$ echo $demo
$ demo=`expr $demo + 1`
$ echo $demo

Return the filename portion of a pathname stored in variable a. The // characters act to eliminate ambiguity with the division operator.
 $ expr //$a : '.*/\(.*\)'

Return the number of characters in variable $demo.
$ demo=ss64
$ expr $demo : '.*'

Exit Status
expr 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..

"Silence is the perfect expression of scorn" ~ George Bernard Shaw (Back to Methuselah, 1921)


expr man page - Apple.com
awk - Find and Replace text within file(s)
eval - Evaluate several commands/arguments
for - Loop, expand words, and execute commands
test - Evaluate a conditional expression

© Copyright SS64.com 1999-2016
Some rights reserved