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"; echo $?               
               Test for an even number

Get Linux in a Nutshell, Fourth 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.