[BACK]Return to expr.1 CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / bin / expr

Annotation of src/bin/expr/expr.1, Revision 1.7

1.2       mycroft     1: .\" -*- nroff -*-
                      2: .\"
1.1       jtc         3: .\" Copyright (c) 1993 Winning Strategies, Inc.
                      4: .\" All rights reserved.
                      5: .\"
                      6: .\" Redistribution and use in source and binary forms, with or without
                      7: .\" modification, are permitted provided that the following conditions
                      8: .\" are met:
                      9: .\" 1. Redistributions of source code must retain the above copyright
                     10: .\"    notice, this list of conditions and the following disclaimer.
                     11: .\" 2. Redistributions in binary form must reproduce the above copyright
                     12: .\"    notice, this list of conditions and the following disclaimer in the
                     13: .\"    documentation and/or other materials provided with the distribution.
                     14: .\" 3. All advertising materials mentioning features or use of this software
                     15: .\"    must display the following acknowledgement:
                     16: .\"      This product includes software developed by Winning Strategies, Inc.
                     17: .\" 4. The name of the author may not be used to endorse or promote products
1.7     ! jtc        18: .\"    derived from this software without specific prior written permission
1.1       jtc        19: .\"
                     20: .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
                     21: .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
                     22: .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
                     23: .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
                     24: .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
                     25: .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
                     26: .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
                     27: .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
                     28: .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
                     29: .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
                     30: .\"
1.7     ! jtc        31: .\"    $Id: expr.1,v 1.6 1994/01/11 02:13:18 jtc Exp $
1.1       jtc        32: .\"
                     33: .Dd July 3, 1993
                     34: .Dt EXPR 1
                     35: .Os
                     36: .Sh NAME
                     37: .Nm expr
                     38: .Nd evaluate expression
                     39: .Sh SYNOPSIS
                     40: .Nm expr
                     41: .Ar expression
                     42: .Sh DESCRIPTION
                     43: The
                     44: .Nm expr
                     45: utility evaluates
                     46: .Ar expression
                     47: and writes the result on standard output.
                     48: .Pp
                     49: All operators are separate arguments to the
                     50: .Nm expr
                     51: utility.
                     52: Characters special to the command interpreter must be escaped.
                     53: .Pp
1.6       jtc        54: Operators are listed below in order of increasing precedence.
                     55: Operators with equal precedence are grouped within { } symbols.
1.1       jtc        56: .Bl -tag -width indent
                     57: .It Ar expr1 Li | Ar expr2
                     58: Returns the evaluation of
                     59: .Ar expr1
                     60: if it is neither an empty string nor zero;
                     61: otherwise, returns the evaluation of
                     62: .Ar expr2 .
                     63: .It Ar expr1 Li & Ar expr2
                     64: Returns the evaluation of
                     65: .Ar expr1
                     66: if neither expression evaluates to an empty string or zero;
                     67: otherwise, returns zero.
                     68: .It Ar expr1 Li "{=, >, >=, <, <=, !=}" Ar expr2
1.6       jtc        69: Returns the results of integer comparison if both arguments are integers;
1.3       jtc        70: otherwise, returns the results of string comparison using the locale-specific
                     71: collation sequence.
1.1       jtc        72: The result of each comparison is 1 if the specified relation is true,
                     73: or 0 if the relation is false.
                     74: .It Ar expr1 Li "{+, -}" Ar expr2
                     75: Returns the results of addition or subtraction of integer-valued arguments.
                     76: .It Ar expr1 Li "{*, /, %}" Ar expr2
                     77: Returns the results of multiplication, integer division, or remainder of integer-valued arguments.
                     78: .It Ar expr1 Li : Ar expr2
                     79: The
                     80: .Dq \:
                     81: operator matches
                     82: .Ar expr1
                     83: against
                     84: .Ar expr2 ,
                     85: which must be a regular expression.  The regular expression is anchored
1.6       jtc        86: to the beginning of  the string with an implicit
1.5       jtc        87: .Dq ^ .
1.1       jtc        88: .Pp
1.5       jtc        89: If the match succeeds and the pattern contains at least one regular
                     90: expression subexpression
1.1       jtc        91: .Dq "\e(...\e)" ,
                     92: the string corresponding to
                     93: .Dq "\e1"
                     94: is returned;
                     95: otherwise the matching operator returns the number of characters matched.
1.5       jtc        96: If the match fails and the pattern contains a regular expression subexpression
                     97: the null string is returned;
                     98: otherwise 0.
1.1       jtc        99: .El
                    100: .Pp
                    101: Parentheses are used for grouping in the usual manner.
                    102: .Sh EXAMPLES
                    103: .Bl -enum
                    104: .It
                    105: The following example adds one to the variable a.
                    106: .Dl a=`expr $a + 1`
                    107: .It
                    108: The following example returns the filename portion of a pathname stored
                    109: in variable a.  The // characters act to eliminate ambiguity with the
                    110: division operator.
                    111: .Dl expr "//$a" Li : '.*/\e(.*\e)'
                    112: .It
                    113: The following example returns the number of characters in variable a.
                    114: .Dl expr $a Li : '.*'
                    115: .El
                    116: .Sh DIAGNOSTICS
                    117: The
                    118: .Nm expr
                    119: utility exits with one of the following values:
1.5       jtc       120: .Bl -tag -width Ds -compact
1.1       jtc       121: .It 0
                    122: the expression is neither an empty string nor 0.
                    123: .It 1
                    124: the expression is an empty string or 0.
                    125: .It 2
                    126: the expression is invalid.
                    127: .El
                    128: .Sh STANDARDS
                    129: The
                    130: .Nm expr
1.4       jtc       131: utility conforms to
                    132: .St -p1003.2 .

CVSweb <webmaster@jp.NetBSD.org>