Please contact or Mt Xia for assistance with all your shell programming needs.

expr(1)								      expr(1)

  expr - Evaluates arguments as	expressions


  expr expression


  The expr command reads an expression,	evaluates it, and writes the result
  to standard output.  Within the expression argument, you must	separate each
  term with spaces, precede characters special to the shell with a \
  (backslash), and quote strings containing spaces or other special charac-
  ters.	 Note that expr	returns	0 to indicate a	zero value, rather than	the
  null string.	Integers can be	preceded by a unary minus sign.	 Internally,
  integers are treated as 64-bit or 32-bit two's complement numbers, depend-
  ing on the word size of the hardware platform.

  The operators	and keywords are described in the following listing.  Charac-
  ters that need to be escaped are preceded by a \ (backslash).	 The list is
  in order of increasing precedence with equal precedence operators grouped
  within {} (braces).

  expression1 \| expression2
      Returns expression1 if it	is neither null	nor 0 (zero); otherwise,
      returns expression2.

  expression1 \& expression2
      Returns expression1 if neither expression1 nor expression2 is null nor
      0; otherwise, returns 0.

  expression1 {	 =,  \>,  \>=,	 \<,  \<=,  !=	} expression2
      Returns the result of an integer comparison if both expressions are
      integers;	otherwise, returns the result of a string comparison.

  expression1 :	expression2 or match expression1 expression2
      Compares expression1 with	expression2, which must	be a regular expres-
      sion, with syntax	as described for grep, except that all patterns	are
      anchored,	so ^ (circumflex) (which anchors a pattern to the beginning
      of a line) is not	a special character in this context.

      Normally,	the matching operator returns the number of characters
      matched.	Alternatively, you can use the \(...\) symbols in expression2
      to return	a portion of expression1.



  The expr command provides the	following string-expression functions.
  Strings containing white space must be quoted.  The first character of a
  string is position 1.	 The information returned by all of these functions
  is in	the form of a string:

  index	string1	string2
      Compares each character in the second string against each	character in
      the first	string and returns the position	in the first string of the
      first match found, where the first match is the match closest to the
      beginning	of string1.

  length string
      Returns the length of the	string argument.

  match	string1	string2
      See the description of the : (colon) match operator, above.

  substr string	start length
      Returns the substring of string that begins at character position	start
      and is length characters long.


   1.  To increment a shell variable, enter:
	    COUNT=`expr	$COUNT + 1`

       This adds 1 to the COUNT	shell variable (see sh for details).

   2.  To find the length of a shell variable, enter:
	    RES=`expr "$VAR" : ".*"`

       Note that VAR is	in double quotes to avoid problems where VAR is	NULL
       or contains embedded spaces.  The regular expression is also quoted to
       avoid expansion by the shell.  This operation can also be performed
	    RES=`expr length "$VAR"`

   3.  To use part of a	shell variable,	enter:
	    RES=`expr "$VAR" : "-*\(.*\)"`

       This removes leading - (dashes),	if any,	from VAR.  If the \( \)	char-
       acters were omitted, RES	would contain the length of VAR.

   4.  To find a character from	one string in another string, enter:
	    INDEX=`expr	index "Hello World!" "Wo"`

       Note that the returned value is 5, not 7.  The first match is the
       fifth character in string1, matching the	o in string2 rather than the
       W, which	is the seventh character in string1.

   5.  Special considerations:
	    RES=`expr "x$VAR" :	"x-*\(.*\)"`

       This succeeds even if VAR has the value - (dash).
	    RES=`expr "x$VAR" =	"x="

       This succeeds even if VAR has the value = (equal	sign).


  The expr command returns the following exit values:

  0   The expression is	neither	null nor 0.

  1   The expression is	null or	0.

  2   The expression is	invalid.


  Commands:  grep(1)/egrep(1)/fgrep(1),	sh(1), test(1).

  Functions: string(3),	wcscat(3) wcsmp(3) wcscpy(3)