Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (HP-UX-11.11)
Apropos / Subsearch:
optional field

 expr(1)							     expr(1)

      expr - evaluate arguments as an expression

      expr arguments

      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 \&&amp&amp& expr	Returns the first expr if neither expr is null or 0,
			otherwise returns 0.

      expr { =, \>&gt&gt&gt;, \>&gt&gt&gt;=, \<&lt&lt&lt;, \<&lt&lt&lt;=, != } 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 Release 11i: November 2000

 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
      Single- and multi-byte character code sets are supported.

      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 Release 11i: November 2000

 expr(1)							     expr(1)

	    1	  Expression is null or zero.

	    2	  Invalid expression.

	   >&gt&gt&gt;2	  An error occurred while evaluating the expression.

      syntax error			 Operator or operand errors

      non-numeric argument		 Arithmetic attempted on a string

      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 : '.*'

      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=

      expr was developed by OSF and HP.

 Hewlett-Packard Company	    - 3 -   HP-UX Release 11i: November 2000

 expr(1)							     expr(1)

      sh(1), test(1), environ(5), lang(5), regexp(5).

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

 Hewlett-Packard Company	    - 4 -   HP-UX Release 11i: November 2000