# Arithmetic Operations in Shell Script

We can do arithmetic operations in shell script in a serval way (using let command, using expr command ) but we will recommend using brackets for that.

## Different ways to compute Arithmetic Operations in Bash

1. Using Double Parenthesis
2. Using let command
3. using expr command

## Using Double Parenthesis

```Sum=\$((20+2))
echo "Sum = \${Sum}" # output will be 22
```

### Subtraction

```sub=\$((29-2))
echo "sub = \${sub}" # output will be 27
```

### Multiplication

```mul=\$((20*4))
echo "Multiplication = \${mul}"  # output will be 80
```

### Division

```div=\$((10/3))
echo "Division = \${div}" # output will be 3
```

### Modulo

```mod=\$((10%3))
echo "Modulo = \${mod}"  # output will be one.
```

### Exponentiation

```exp=\$((10**2))
echo "Exponent = \${exp}" # output will be 100.
```

let's create a shell script that will perform some arithmetic operations and some increment and decrement operations.

```#!/bin/bash
a=5
b=6
echo "\$((a+b))"
echo "\$((a-b))"
echo "\$((a*b))"
echo "\$((a/b))" # 5/6
echo "\$((a%b))"
echo "\$((2**3))" # 2*2*2
((a++)) # a=a+1
echo \$a
((a+=3)) # a=a+3
echo \$a
```

output

```┌──(gaurav㉿learning-ocean)-[~/shellscript-youtube]
└─\$ ./arth-operator.sh
11
-1
30
0
5
8
6
9
```

## Using let Command

let command is used to perform arithmetic operations.

```#!/bin/bash

x=10
y=3

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

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

output:

```30
30
3
3
```

## expr command with backticks

The arithmetic expansion could be done using backticks and expr.

```#!/bin/bash
a=10
b=3

# there must be spaces before/after the operator
sum=`expr \$a + \$b`
echo \$sum

sub=`expr \$a - \$b`
echo \$sub

mul=`expr \$a \* \$b`
echo \$mul

div=`expr \$a / \$b`
echo \$div
```

Output:

```13
7
30
3
```

Demo