SYNOPSIS

       expr arguments ...


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
              where relop is one of < <= = != >= >, yields `1'  if  the  indi-
              cated  comparison  is  true,  `0'  if  false.  The comparison is
              numeric if both expr are integers, otherwise lexicographic.

       expr + expr
              expr - expr
              addition or subtraction of the arguments.

       expr * expr
              expr / expr
              expr % expr
              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 syn-
              tax is the same as that of  ed(1);  /usr/5bin/expr  uses  simple
              regular            expressions,            /usr/5bin/posix/expr,
              /usr/5bin/posix2001/expr, and /usr/5bin/s42/expr use basic regu-
              lar  expressions.   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 fail-
              ure).

       match expr expr
              Same as expr : expr.

       ( expr )
              parentheses for grouping.

       string Yields itself unless it is part of a  larger  expression.   With
              /usr/5bin/posix/expr  and  /usr/5bin/posix2001/expr, all strings
              Returns  the index in string (starting at 1) of the first occur-
              rence of one of the characters in set, or 0 if no  character  is
              found.


ENVIRONMENT VARIABLES

       LANG, LC_ALL
              See locale(7).

       LC_COLLATE
              Sets the collation sequence for string comparison, and for range
              expressions, equivalence classes, and collation symbols in basic
              regular expressions.

       LC_CTYPE
              Determines the mapping of bytes to characters in regular expres-
              sions, for the match, length, substr, and index  operators,  and
              the  availability  and composition of character classes in basic
              regular expressions.

       SYSV3  Enables some additional operators as described above.


EXAMPLES

       To add 1 to the Shell variable a:

              a=`expr $a + 1`

       To find the filename part (least  significant  part)  of  the  pathname
       stored in variable a, which may or may not contain `/':

              expr "$a" : '.*/\(.*\)' '|' "$a"

       Note the quoted Shell metacharacters.  Also note that this example gen-
       erates wrong results if the result of the substitution  is  `0'  or  if
       `$a'  equals  one of the expr operators.  Be sure that your code avoids
       such problems and use basename(1)  if  to  actually  cut  out  filename
       parts.


SEE ALSO

       ed(1), sh(1), test(1)


DIAGNOSTICS

       Expr returns the following exit codes:

            0    if the expression is neither null nor `0',
            1    if the expression is null or `0',
            2    for invalid expressions.


NOTES

       Integers are treated as 64-bit, 2's complement numbers.




Man(1) output converted with man2html