Arithmetic Expressions

The let command performs integer arithmetic. bash provides a way to substitute integer values (for use as command arguments or in variables); base conversion is also possible.



(( expr))

Use the value of the enclosed arithmetic expression.


bash uses arithmetic operators from the C programming language; the following list is in decreasing order of precedence. Use parentheses to override precedence.




Unary minus

! ~

Logical negation; binary inversion (one’s complement)

* / %

Multiplication; division; modulus (remainder)

+ -

Addition; subtraction

<< >>

Bitwise left shift; bitwise right shift

<= >=

Less than or equal to; greater than or equal to

< >

Less than; greater than

= = !=

Equality; inequality (both evaluated left to right)


Bitwise AND


Bitwise exclusive OR


Bitwise OR


Logical AND


Logical OR


Assign value

+= -=

Reassign after addition/subtraction

*= /= %=

Reassign after multiplication/division/remainder

&= ^= |=

Reassign after bitwise AND/XOR/OR

<<= >>=

Reassign after bitwise shift left/right


See the let built-in command for more information and examples.

                  let "count=0" "i = i + 1"          
                  Assign i and count
                  let "num % 2"; echo $?             
                  Test for an even number

Get Mac OS X Panther in a Nutshell, 2nd Edition now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.