Chapter 15. Arithmetic Expansion

Arithmetic expansion provides a powerful tool for performing arithmetic operations in scripts. Translating a string into a numerical expression is relatively straightforward using backticks, double parentheses, or let.


Arithmetic expansion with backticks (often used in conjunction with expr)

   1 z=`expr $z + 3`          # The 'expr' command performs the expansion.

Arithmetic expansion with double parentheses, and using let

The use of backticks in arithmetic expansion has been superseded by double parentheses $((...)) or the very convenient let construction.
   1 z=$(($z+3))
   2 # $((EXPRESSION)) is arithmetic expansion.  #  Not to be confused with
   3                                             #+ command substitution.
   5 let z=z+3
   6 let "z += 3"  # Quotes permit the use of spaces and special operators.
   7 #  The 'let' operator actually performs arithmetic evaluation,
   8 #+ rather than expansion.
All the above are equivalent. You may use whichever one "rings your chimes".

Examples of arithmetic expansion in scripts:

  1. Example 12-6

  2. Example 10-14

  3. Example 26-1

  4. Example 26-6

  5. Example A-18