*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->HP-UX 11i man pages -> expr (1)              


 expr(1)                                                             expr(1)

 NAME    [Toc]    [Back]
      expr - evaluate arguments as an expression

 SYNOPSIS    [Toc]    [Back]
      expr arguments

 DESCRIPTION    [Toc]    [Back]
      expr takes arguments as an expression, evaluates, then writes the
      result on the standard output.  Terms in the expression must be
      separated by blanks.  Characters special to the shell must be escaped.
      Note that 0, rather than the null string, is returned to indicate a
      zero value.  Strings containing blanks or other special characters
      should be quoted.  Integer-valued arguments can be preceded by a unary
      minus sign.  Internally, integers are treated as 32-bit, 2's
      complement numbers.

      The operators and keywords are listed below.  Characters that need to
      be escaped are preceded by \.  The list is in order of increasing
      precedence with equal-precedence operators grouped within {} symbols.

      expr \| expr      Returns the first expr if it is neither null nor 0,
                        otherwise returns the second expr.

      expr \& expr      Returns the first expr if neither expr is null or 0,
                        otherwise returns 0.

      expr { =, \>, \>=, \<, \<=, != } expr
                        If both arguments are integers, and if the
                        comparison is satisfied, expr returns 1 otherwise it
                        returns 0.  expr returns the result of an integer
                        comparison if both arguments are integers; otherwise
                        returns the result of a lexical comparison (note
                        that = and == are identical, in that both test for

      expr { +, - } expr
                        Addition or subtraction of decimal integer-valued

      expr { \*, /, % } expr
                        Multiplication, division or remainder of decimal
                        integer-valued arguments producing an integer

      expr : expr       The matching operator : compares the first argument
                        with the second argument which must be a regular
                        expression.  expr supports the Basic Regular
                        Expression syntax (see regexp(5)), except that all
                        patterns are ``anchored'' (i.e., begin with ^) and,
                        therefore, ^ is not a special character, in that
                        context.  Normally, the matching operator returns

 Hewlett-Packard Company            - 1 -   HP-UX 11i Version 2: August 2003

 expr(1)                                                             expr(1)

                        the number of characters matched (0 on failure).
                        Alternatively, the \(...\) pattern symbols can be
                        used to return a portion of the first argument.

      length expr       The length of expr.

      substr expr expr expr
                        Takes the substring of the first expr, starting at
                        the character specified by the second expr for the
                        length given by the third expr.

      index expr expr   Returns the position in the first expr which
                        contains a character found in the second expr.

      match             Match is a prefix operator equivalent to the infix
                        operator :.

      \(...\)           Grouping symbols.  Any expression can be placed
                        within parentheses.  Parentheses can be nested to a
                        depth of EXPR_NEST_MAX as specified in the header
                        file <limits.h>.

    Environment Variables
      LC_COLLATE determines the collating sequence used in evaluating
      regular expressions and the behavior of the relational operators when
      comparing string values.

      LC_CTYPE determines the interpretation of text as single- and/or
      multi-byte characters, and the characters matched by character class
      expressions in regular expressions.

      LANG determines the language in which messages are displayed.

      If LC_COLLATE or LC_CTYPE is not specified in the environment or is
      set to the empty string, the value of LANG is used as a default for
      each unspecified or empty variable.  If LANG is not specified or is
      set to the empty string, a default of "C" (see lang(5)) is used
      instead of LANG.  If any internationalization variable contains an
      invalid setting, expr behaves as if all internationalization variables
      are set to "C" (see environ(5)).

    International Code Set Support    [Toc]    [Back]
      Single- and multi-byte character code sets are supported.

 RETURN VALUE    [Toc]    [Back]
      As a side effect of expression evaluation, expr returns the following
      exit values:

            0     Expression is neither null nor zero.

 Hewlett-Packard Company            - 2 -   HP-UX 11i Version 2: August 2003

 expr(1)                                                             expr(1)

            1     Expression is null or zero.

            2     Invalid expression.

           >2     An error occurred while evaluating the expression.

 DIAGNOSTICS    [Toc]    [Back]
      syntax error                       Operator or operand errors

      non-numeric argument               Arithmetic attempted on a string

 EXAMPLES    [Toc]    [Back]
      Add 1 to the shell variable a:

           a=`expr $a + 1`

      For $a equal to either /usr/abc/file or just file, return the last
      segment of a path name (i.e., file).  Beware of / alone as an argument
      because expr interprets it as the division operator (see WARNINGS

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

      A better representation of the previous example.  The addition of the
      // characters eliminates any ambiguity about the division operator and
      simplifies the whole expression:

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

      Return the number of characters in $VAR:

           expr $VAR : '.*'

 WARNINGS    [Toc]    [Back]
      After argument processing by the shell, expr cannot tell the
      difference between an operator and an operand except by the value.  If
      $a is an =, the command:

           expr $a = '='


           expr = = =

      as the arguments are passed to expr (and they will all be taken as the
      = operator).  The following works:

           expr X$a = X=

 AUTHOR    [Toc]    [Back]
      expr was developed by OSF and HP.

 Hewlett-Packard Company            - 3 -   HP-UX 11i Version 2: August 2003

 expr(1)                                                             expr(1)

 SEE ALSO    [Toc]    [Back]
      sh(1), test(1), environ(5), lang(5), regexp(5).

      expr: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2

 Hewlett-Packard Company            - 4 -   HP-UX 11i Version 2: August 2003
[ Back ]
 Similar pages
Name OS Title
exprlong IRIX evaluate an expression
expr FreeBSD evaluate expression
expr OpenBSD evaluate expression
expr IRIX Evaluate an expression
echo IRIX echo arguments
eval IRIX Evaluate a Tcl script
expr Linux evaluate expressions
printf HP-UX format and print arguments
echo HP-UX echo (print) arguments
apply OpenBSD apply a command to a set of arguments
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service