# 32v 1m expr

From Computer History Wiki

EXPR(1) UNIX Programmer's Manual EXPR(1)

## Contents

## 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 opera- tors grouped.

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

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

_e_x_p_r _r_e_l_o_p _e_x_p_r where _r_e_l_o_p _i_s _o_n_e _o_f < <= = != >= >, yields `1' if the indicated comparison is true, `0' if false. The com- parison is numeric if both _e_x_p_r are integers, otherwise lexicographic.

_e_x_p_r + _e_x_p_r _e_x_p_r - _e_x_p_r addition or subtraction of the arguments.

_e_x_p_r * _e_x_p_r _e_x_p_r / _e_x_p_r _e_x_p_r % _e_x_p_r multiplication, division, or remainder of the argu- ments.

_e_x_p_r : _e_x_p_r The matching operator compares the string first argu- ment with the regular expression second argument; regu- lar expression syntax is the same as that of _e_d(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).

( _e_x_p_r ) 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 : '.*/\(.*\)' '|' $a

Note the quoted Shell metacharacters.

## SEE ALSO

ed(1), sh(1), test(1)

## DIAGNOSTICS

_E_x_p_r 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.