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:

Expression Meaning
(( expr )) Use the value of the enclosed arithmetic expression.

Operators

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

Operator Meaning
- 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

Examples

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

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

Get Linux in a Nutshell, Third Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.