expr

expr is a command line Unix utility which evaluates an expression and outputs the corresponding value. It first appeared in Unix v7.

expr
Original author(s)Dick Haight
Developer(s)AT&T Bell Laboratories
Initial release1979 (1979)
Operating systemUnix and Unix-like
TypeCommand

Overview

expr evaluates integer or string expressions, including pattern matching regular expressions. Each symbol (operator, value, etc.) in the expression must be given as a separate parameter. Most of the challenge posed in writing expressions is preventing the invoking command line shell from acting on characters intended for expr to process.

Syntax

Syntax: expr expression

The operators available

  • for integers: addition, subtraction, multiplication, division and modulus
  • for strings: find regular expression, find a set of characters in a string; in some versions: find substring, length of string
  • for either: comparison (equal, not equal, less than, etc.)

Example

The following is an example involving boolean expressions:

expr length  "abcdef"  "<"  5  "|"  15  -  4  ">"  8

This example outputs "1". This is because length "abcdef" is 6, which is not less than 5 (so the left side of the | returns zero). But 15 minus 4 is 11 and is greater than 8, so the right side is true, which makes the or true, so 1 is the result. The program exit status is zero for this example.

For pure arithmetic, it is often more convenient to use bc. For example:

echo "3*4+14/2" | bc

since it accepts the expression as a single argument.

For portable shell programming use of the length and substr commands is not recommended.

gollark: Most programs do not actually need "direct control over hardware" or something and really should not have it.
gollark: I might, yes.
gollark: The main downside is increased resource use.
gollark: Anyway, these are bad analogies because Python is generally faster and easier to program in than C, as well as safer.
gollark: I suppose so.

See also

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.