On-line Guides

How To Guides






Advanced Bash-Scripting Guide:
Prev Next

Chapter 15. Arithmetic Expansion

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

Variations

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

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 -- ((...)) and $((...)) -- and also by the very convenient let construction.

z=$(($z+3))
z=$((z+3)) # Also correct.
 # Within double parentheses,
 #+ parameter dereferencing
 #+ is optional.
# $((EXPRESSION)) is arithmetic expansion. # Not to be confused with
 #+ command substitution.
# You may also use operations within double parentheses without assignment.
 n=0
 echo "n = $n" # n = 0
 (( n += 1 )) # Increment.
# (( $n += 1 )) is incorrect!
 echo "n = $n" # n = 1
let z=z+3
let "z += 3" # Quotes permit the use of spaces in variable assignment.
 # The 'let' operator actually performs arithmetic evaluation,
 #+ rather than expansion.

Examples of arithmetic expansion in scripts:

  1. Example 12-9

  2. Example 10-14

  3. Example 26-1

  4. Example 26-11

  5. Example A-17


Prev Home Next
Command SubstitutionUp I/O Redirection
Published under the terms of the GNU General Public License Design by Interspire

AltStyle によって変換されたページ (->オリジナル) /