GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Main page
  • Contents
  • Current events
  • Random article
  • About Wikipedia
  • Contact us
  • Help
  • Learn to edit
  • Community portal
  • Recent changes
  • Upload file
  • Special pages
  • Search
  • Donate

This view

  • Original page
  • New address

GeezerVison is showing en.wikipedia.org — expr - Wikipedia

expr
Example of expr command that does basic summation
Original authorsDick Haight
(AT&T Bell Laboratories)
DevelopersVarious open-source and commercial developers
Release1979 (1979)
Operating systemUnix, Unix-like, IBM i
PlatformCross-platform
TypeCommand

expr is a shell command that evaluates an expression and outputs the result. It evaluates integer or string expressions, including pattern matching regular expressions. Comparison operators (equal, not equal, less than, etc.) apply to both integer and string values. Integer-specific operations include addition, subtraction, multiplication, division and modulus. String-specific operators include:

  • matching a regular expression (match, or the colon syntax "str" : "reg" for an arbitrary string "str" and regular expression "reg")
  • finding a set of characters in a string (index)
  • finding a substring (substr)
  • finding the length of a string (length)

Each symbol (operator, value, etc.) in the expression must be given as a separate parameter. A common challenge with using the command is preventing the shell from acting on input indented to be the expression as something other than expression.

Originally developed for Unix v7 and standardized by POSIX, the command is available on IBM i,[1] and for Windows via UnxUtils.[2][3]

Example

The following is a (non-POSIX-compliant) 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.

Portability

For portable shell programming, use of the "index", "length", "match" and "substr" commands must be avoided; string matching remains possible but it must use the "string : regexp" syntax.

See also

  • List of POSIX commands

References

  1. ↑ IBM. "IBM System i Version 7.2 Programming Qshell" (PDF). IBM. Archived (PDF) from the original on 2020-09-18. Retrieved 2020-09-05.
  2. ↑ "Port of the most important GNU utilities to Windows". Archived from the original on 2022-09-07. Retrieved 2026-02-03.
  3. ↑ "Native Win32 ports of some GNU utilities". unxutils.sourceforge.net. Archived from the original on 2006-02-09. Retrieved 2026-02-03.

External links

Wikibooks logo
The Wikibook Guide to Unix has a page on the topic of: Commands
  • expr: evaluate arguments as an expression – Shell and Utilities Reference, The Single UNIX Specification, Version 5 from The Open Group
  • expr invocation in GNU coreutils manual
Stub icon

This Unix-related article is a stub. You can help Wikipedia by adding missing information.

  • v
  • t
  • e
Retrieved from "https://en.wikipedia.org/w/index.php?title=Expr&oldid=1353507394"
Categories:
  • GNU Project software
  • Unix programming tools
  • Standard Unix programs
  • Unix SUS2008 utilities
  • IBM i Qshell commands
  • Unix stubs
Hidden categories:
  • Articles with short description
  • Short description matches Wikidata
  • All stub articles
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.