Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ expr(1) — DG/UX 4.00

Media Vault

Software Library

Restoration Projects

Artifacts Sought



                                                                  expr(1)



        _________________________________________________________________
        expr                                                      Command
        evaluate arguments as an expression
        _________________________________________________________________


        SYNTAX

        expr arguments


        DESCRIPTION

        The arguments are taken as an expression.  After evaluation, the
        result is written on the standard output.  Terms of the
        expression must be separated by blanks.  Characters special to
        the shell must be escaped.  Note that 0 is returned to indicate a
        zero value, rather than the null string.  Strings containing
        blanks or other special characters should be enquoted.  Integer-
        valued arguments may be preceded by a unary minus sign.
        Internally, integers are treated as 32-bit, 2s complement
        numbers.

        The operators and keywords are listed below.  Characters that
        need to be escaped in the Bourne shell, sh(1), 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
             Returns the result of an integer comparison if both
             arguments are integers; otherwise, returns the result of a
             lexical comparison.

        expr { +, - } expr
             Adds or subtracts integer-valued arguments.

        expr { \*, /, % } expr
             Multiplies, divides, or gives remainder of the integer-
             valued arguments.

        expr : expr
             The matching operator : compares the first argument with the
             second argument.  Both must be a regular expression.



        DG/UX 4.00                                                 Page 1
               Licensed material--property of copyright holder(s)





                                                                  expr(1)



             Regular expression syntax is the same as that of ed(1),
             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 the number
             of characters matched (0 on failure).  Alternatively, the
             \(...\) pattern symbols can return a part of the first
             argument.



        _________________________________________________________________
        EXAMPLES

        $ TEST=`expr $VAR1 \& $VAR2`
        $ echo $TEST
        0

        Assuming VAR1 or VAR2 has a value of null or zero, the variable
        TEST will get the value 0, as shown above.  If VAR1 and VAR2 both
        had some value other than null or zero, the value of VAR1 would
        have been assigned to TEST.
        _________________________________________________________________


        SEE ALSO

        ed(1), sh(1).


        EXIT CODE

        As a side effect of expression evaluation, expr returns the
        following exit values:
             0    If the expression is neither null nor 0
             1    If the expression is null or 0
             2    For invalid expressions.


        DIAGNOSTICS

        syntax error   For operator/operand errors
        non-numeric argument
                       If arithmetic is attempted on such a string


        WARNING

        Remember that expr's arguments are first seen and processed by
        the shell. Here are two examples of problems that can arise:

        1. Expr can only distinguish operators and operands (arguments)



        DG/UX 4.00                                                 Page 2
               Licensed material--property of copyright holder(s)





                                                                  expr(1)



        by their value. Let's suppose that the current value of shell
        variable a is a single equals sign (=).  The shell will read expr
        $a = '=' and turn it into expr = = =.  To avoid this kind of
        problem, attach a dummy character to both your operands, like
        this:   expr x$a = x=.

        2. When a shell variable has a null value, the shell will take
        the variable out of the command before expr gets to see it.  This
        is particularly troublesome when you want to use \| and \&. For
        example, suppose shell variable b is null. The shell will turn
         expr $b \| 'test' into
          expr \| test.  To get around this problem, place double quotes
        in the command line around shell variables that might become
        null, like this:
         expr "$b" \| 'test'.







































        DG/UX 4.00                                                 Page 3
               Licensed material--property of copyright holder(s)



Typewritten Software • bear@typewritten.org • Edmonds, WA 98026