Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

ed(1)

sh(1)

test(1)

expr(1)

Name

expr − evaluate expressions

Syntax

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 The relop is one of < <= = != >= > and yields 1 if the indicated comparison is true, ’0’ if false.  The comparison is numeric if both expr are integers, otherwise lexicographic. 

expr + expr

expr - expr

Yields addition or subtraction of the arguments. 

expr * expr

expr / expr
expr % expr

Yields 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(.). 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

The first example adds 1 to the Shell variable a:

a=`expr $a + 1`

The second example finds the file name part (least significant part) of the pathname stored in variable a,

expr $a : ´.*/\(.*\)´ ´|´ $a

Note the quoted Shell metacharacters.

Diagnostics

The expr command returns the following exit codes:

0The expression is neither null nor ’0’. 

1The expression is null or ’0’. 

2The expression is invalid. 

See Also

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

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