xref: /original-bsd/bin/expr/expr.1 (revision b2a2ec35)
@(#)expr.1 5.1 (Berkeley) 04/29/85

EXPR 1 "18 January 1983"
.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.