## Bash Arithmetic Operators

Bash Arithmetic Operators – There are 11 arithmetic operators supported by Bash Shell.

In this tutorial, we will learn the syntax, description and examples for each of the arithmetic operators.

### Addition

Computes addition of two numbers provided as operands.

```#!/bin/bash

x=\$(( 15 + 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 + 8`
echo \$x```

Output

`23`

### Subtraction

Computes subtraction of second operand from first.

```#!/bin/bash

x=\$(( 15 - 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 - 8`
echo \$x```

Output

`7`

### Multiplication

Computes the product of two operands provided.

```#!/bin/bash

x=\$(( 15 * 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 * 8`
echo \$x```

Output

`120`

### Division

Computes the division of first operand by second operand and returns quotient.

```#!/bin/bash

x=\$(( 15 / 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 / 8`
echo \$x```

Output

`1`

### Exponentiation

Computes the result of second operand raised to the power of first operand.

```#!/bin/bash

x=\$(( 15 ** 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 ** 8`
echo \$x```

Output

`2562890625`

### Modulo

Computes reminder when the first operand is divided by second operand.

```#!/bin/bash

x=\$(( 15 % 8 ))
echo \$x```
```#!/bin/bash

x=`expr 15 % 8`
echo \$x```

Output

`7`

### Increment Variable by Constant

The operator increments the value of first operand by the constant provided.

```#!/bin/bash

x=2
let "x += 5"
echo \$x```
```#!/bin/bash

x=2
(( x += 5 ))
echo \$x```

Output

`23`

### Decrement Variable by Constant

The operator decrements the value of first operand by the constant provided.

```#!/bin/bash

x=2
let "x -= 5"
echo \$x```
```#!/bin/bash

x=2
(( x -= 5 ))
echo \$x```

Output

`-3`

### Multiply Variable by Constant

The operator multiplies the value of first operand by the constant provided.

```#!/bin/bash

x=2
let "x *= 5"
echo \$x```
```#!/bin/bash

x=2
(( x *= 5 ))
echo \$x```

Output

`10`

### Divide Variable by Constant

The operator computes (variable / constant) and stores the result back to variable.

```#!/bin/bash

x=12
let "x /= 5"
echo \$x```
```#!/bin/bash

x=12
(( x /= 5 ))
echo \$x```

Output

`2`

### Remainder of Dividing Variable by Constant

The operator computes (variable % constant) and stores the result back to variable.

```#!/bin/bash

x=12
let "x %= 5"
echo \$x```
```#!/bin/bash

x=12
(( x %= 5 ))
echo \$x```

Output

`2`

## Different ways to compute Arithmetic Operations in Bash

Following are some of the variations you may adopt to perform Arithmetic Operations.

### Double Parenthesis

Double parenthesis could be used for arithmetic expansion. Following is an example that demonstrates the usage of double parenthesis for arithmetic operations.

```#!/bin/bash

x=10
y=3

echo \$(( x + y ))	# addition
echo \$(( \$x + \$y ))	# also valid

echo \$(( x - y ))	# subtraction
echo \$(( \$x - \$y ))	# also valid

echo \$(( x * y ))	# multiplication
echo \$(( \$x * \$y ))	# also valid

echo \$(( x / y ))	# division
echo \$(( \$x / \$y ))	# also valid

echo \$(( x ** y ))	# exponentiation
echo \$(( \$x ** \$y ))	# also valid

echo \$(( x % y ))	# modular division
echo \$(( \$x % \$y ))	# also valid

(( x += 4 ))	# increment variable by constant
echo \$x

(( x -= 4 ))	# decrement variable by constant
echo \$x

(( x *= 4 ))	# mulitply variable by constant
echo \$x

(( x /= 4 ))	# divide variable by constant
echo \$x

(( x %= 4 ))	# Remainder of Dividing Variable by Constant
echo \$x
﻿```

### let construction

let command is used to carry out arithmetic operations. Following is an example :

```#!/bin/bash

x=10
y=3
z=0

let "z = \$(( x + y ))"	# addition
let z=\$((x+y))	# also valid without double quotes when no spaces in expression
echo \$z

let "z = \$(( x - y ))"	# subtraction
let z=\$((x-y))
echo \$z

let "z = \$(( x * y ))"	# multiplication
let z=\$((x*y))
echo \$z

let "z = \$(( x / y ))"	# division
let z=\$((x/y))
echo \$z

let "z = \$(( x ** y ))"	# exponentiation
let z=\$((x**y))
echo \$z

let "z = \$(( x % y ))"	# modular division
let z=\$((x%y))
echo \$z

let "x += 4"	# increment variable by constant
echo \$x

let "x -= 4"	# decrement variable by constant
echo \$x

let "x *= 4"	# mulitply variable by constant
echo \$x

let "x /= 4"	# divide variable by constant
echo \$x

let "x %= 4"	# Remainder of Dividing Variable by Constant
echo \$x```

### Backticks

Arithmetic expansion could be done using backticks and expr (all purpose expression evaluator). Following is an example :

```a=5
b=7
c=`expr \$a + \$b`
echo \$c		# 12```

### Conclusion

In this Bash Tutorial, we have learnt Arithmetic Operators supported by Bash Shell with example for each.