Search anything:

expr command in Linux

Free book on Graph Algorithms

Get this book -> Problems on Array: For Interviews and Competitive Programming

In Linux, the expr command evaluates an expression passed to it and returns the corresponding value. We usually use it for basic arithmetic such as addition, subtraction, modulo operations, division, multiplication. We also use expr command to evaluate expressions.

Table of contents.

  1. Introduction.
  2. Syntax.
  3. Basic arithmetic.
  4. Comparisons.
  5. String operations.
  6. Summary.
  7. References.


The expr command, as the name suggests, is used to evaluate expressions in the bash terminal and also in shell scripts. In the following sections, we look at basic expr commands in Linux.


We write expr commands using the following format:



Basic arithmetic.

As mentioned earlier, we use the expr command for basic arithmetic on the Linux terminal.

We can perform additions, subtractions, multiplications, modulo operations and divisions.

To add to numbers we write:

$ expr num1 + num2

To subtract them we write:

$ expr num1 - num2

To divide them we write:

$ expr num1 / num2

To multiply them, we have to escape the * operator as follows:

$ expr num1 \* num2

To get the modulus of two numbers we write:

$ expr num1 % num2


Apart from performing arithmetic operations on the bash terminal, we can also perform operations on variables within a shell script:

echo "Enter two values: "
read a; read b
echo "Their sum is: `expr $a + $b`"


The output:

We can also increment and decrement variables, for example, to increment a variable's value by 3 we write:

$ expr $x + 3

And to decrement it by 4 we write:

$ expr $x - 4



We can evaluate two expressions to check if they are similar or not, or one is less than or greater than or one is not equal to or is equal to the other.

For example to check if two strings match we write:

# equality
$ expr $string1 = $string2

# not equal
$expr $string1 \!= $string2


Another example;

To check if one number is less than or greater than another we write:

$ expr $num1 \> $num2

$ expr $num1 \< $num2


We can also evaluate boolean expressions, for example:

$ expr 4  "<"  5  "&"  6  ">="  10 

The above returns false(0) since 4 is less than 5 but 6 is not greater than or equal to 10.
This is an example of a logical AND using expr command.

Using the logical OR we can write:

$ expr 4  "<"  5  "|"  6  ">="  10 

Here the second expression is false, however, if any is true then the expression is true.

String operations.

We also use expr to find the length of strings. The basic syntax is as follows:

$ expr length "The length of a string"


We can also find substrings - strings within strings. For example, to get a substring starting from index 4 and is four characters long, we write:

$ expr substr $string 4 4


This command is also handy in matching the number of characters between two strings, for example:

$ str1=Javascript
$ str2=Java
$ expr $str1 : $str2


In the above example, the result is 4 meaning only four characters are common to both strings.

To find the position of a specific character in a string we write:

$ expr index $string [character]


Here we try to return the position of the character x in string.


We use the expr command to evaluate expressions in the bash terminal. We use it for basic operations and evaluation of regular expressions. We also use it to perform string operations such as returning the length of a string and getting substrings from a string.

In this article at OpenGenus, we have learned about this command and how to perform the described actions with it.


For a comprehensive guide on the expr command, we can check out its man page by writing $ man expr in a Linux terminal.

expr command in Linux
Share this