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

match string  expr

The matching operators : and match compare 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 returns the number of characters matched (0 on failure). 

( expr ) Parentheses for grouping. 

To lexically compare two special characters, such as ( with ), you must precede them with identical nonspecial characters.  To lexically compare any two operators, such as + with -, you must precede them with identical, nonoperator characters. For example:

expr "X(" ">" "X)"
 expr "S+" | expr "S-"

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