EXPR(1) BSD Reference Manual EXPR(1) NNAAMMEE expr - evaluate arguments as an expression SSYYNNOOPPSSIISS eexxpprr arg ...... DDEESSCCRRIIPPTTIIOONN The arguments are taken as an expression. After evalua- tion, 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. _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 comparison is numeric if both _e_x_p_r are inte- gers, 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 argument with the regular expression second argu- ment; regular 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. Other- wise, the matching operator yields the number of characters matched (`0' on failure). ( _e_x_p_r ) parentheses for grouping. 7th Edition May 31, 1993 1 EXPR(1) BSD Reference Manual EXPR(1) 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 con- tain `/': expr $a : '.*/\(.*\)' '|' $a Note the quoted Shell metacharacters. SSEEEE AALLSSOO sh(1), test(1) DDIIAAGGNNOOSSTTIICCSS _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. 7th Edition May 31, 1993 2