xref: /original-bsd/bin/expr/expr.1 (revision 625037c1)
Copyright (c) 1993
The Regents of the University of California. All rights reserved.

%sccs.include.proprietary.roff%

@(#)expr.1 8.1 (Berkeley) 05/31/93

EXPR 1 ""
.AT 3
NAME
expr - evaluate arguments as an expression
SYNOPSIS
expr arg .\|.\|.
DESCRIPTION
The arguments are taken as an expression. After evaluation, the result is written on the standard output. Each token of the expression is a separate argument.

The operators and keywords are listed below. The list is in order of increasing precedence, with equal precedence operators grouped.

expr | expr yields the first expr if it is neither null nor `0', otherwise yields the second expr.

expr & expr yields the first expr if neither expr is null or `0', otherwise yields `0'.

expr relop expr where relop is one of < <= = != >= >, yields `1' if the indicated comparison is true, `0' if false. The comparison is numeric if both expr are integers, otherwise lexicographic.

expr " + " expr

.ns

expr " - " expr

addition or subtraction of the arguments.

expr " * " expr

.ns

expr " / " expr

.ns

expr " % " expr

multiplication, division, or remainder of the arguments.

expr " : " expr The matching operator compares the string first argument with the regular expression second argument; regular expression syntax is the same as that of ed (1). The \\(\|.\|.\|.\|\\) pattern symbols can be used to select a portion of the first argument. Otherwise, the matching operator yields the number of characters matched (`0' on failure).

( " expr " ) parentheses for grouping.

Examples:

To add 1 to the Shell variable a :

a=\`expr $a + 1\`

To find the filename part (least significant part) of the pathname stored in variable a, which may or may not contain `/':

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

Note the quoted Shell metacharacters.

"SEE ALSO"
sh(1), test(1)
DIAGNOSTICS
Expr returns the following exit codes:

0 if the expression is neither null nor `0',

1 if the expression is null or `0',

2 for invalid expressions.