The “expr” command in a shell environment is a versatile utility that allows you to evaluate expressions and perform string manipulation. It is primarily used for numerical calculations and string operations within shell scripts or directly from the command-line interface.

When it comes to numerical calculations, “expr” can handle basic arithmetic operations such as addition, subtraction, multiplication, and division. You can use it to perform calculations on numerical values provided as arguments or stored in variables. For example, the command:

# expr 5 + 3

will output the result of adding 5 and 3, which is 8. Similarly, you can use “expr” to subtract, multiply, or divide numbers.

Besides numerical calculations, “expr” also provides string manipulation capabilities. It allows you to extract substrings, find the index of a character or substring within a larger string, and perform basic string concatenation. This makes “expr” useful for handling text processing tasks within shell scripts. For instance, you can use “expr” to extract a specific portion of a string based on character positions or search for a substring and determine its position within a larger string.

The “expr” command supports a range of operators and functions for both numerical and string operations. It also provides control structures like conditional statements and loops, allowing you to create more complex expressions and perform branching logic within shell scripts.

It’s important to note that “expr” uses a specific syntax for expressions. For example, you need to escape certain characters or enclose expressions in quotation marks to ensure correct interpretation by the shell. Additionally, since “expr” is a separate command, each arithmetic operation or string manipulation typically requires a separate invocation of the command.

While “expr” is a versatile tool, it has some limitations. It primarily supports integer arithmetic, so floating-point calculations or more advanced mathematical operations require using other tools or languages. For complex string manipulation or advanced text processing tasks, specialized utilities or scripting languages like awk or Perl may be more appropriate.

## expr Command Examples

1. Get string length:

# expr length string

2. Evaluate logical or math expression with an operator (‘+’, ‘-‘, ‘*’, ‘&’, ‘|’, etc.). Special symbols should be escaped:

# expr first_argument operator second_argument

3. Get position of the first character in ‘string’ that matches ‘substring’:

# echo $(expr index string substring)

4. Extract part of the string:

# echo $(expr substr string position_to_start number_of_characters

5. Extract part of the string which matches a regular expression:

# echo $(expr string : '\(regular_expression\)')

## Summary

In summary, the “expr” command is a useful utility for evaluating expressions and performing basic numerical calculations and string manipulation within a shell environment. It enables you to handle arithmetic operations, extract substrings, find the position of characters or substrings, and concatenate strings. “expr” provides a convenient way to incorporate numerical and string operations into shell scripts or perform quick calculations from the command line.