09 Arithmetic Operations - kumar159man/MyShellLearning GitHub Wiki

Arithmetic Operations

By default shell takes a variable type as string

myubuntu@myubuntu-VirtualBox:~$ x=5
myubuntu@myubuntu-VirtualBox:~$ y=5
myubuntu@myubuntu-VirtualBox:~$ sum=$x+$y
myubuntu@myubuntu-VirtualBox:~$ echo $sum
5+5

How to perform arithmetic operations

Sum

myubuntu@myubuntu-VirtualBox:~$ x=5
myubuntu@myubuntu-VirtualBox:~$ y=3
myubuntu@myubuntu-VirtualBox:~$ ((sum=x+y))
myubuntu@myubuntu-VirtualBox:~$ echo $sum
8

Substraction

myubuntu@myubuntu-VirtualBox:~$ ((sub=x-y))
myubuntu@myubuntu-VirtualBox:~$ echo $sub
2

Multiplication

myubuntu@myubuntu-VirtualBox:~$ ((mul=x*y))
myubuntu@myubuntu-VirtualBox:~$ echo $mul
15

Modulus

myubuntu@myubuntu-VirtualBox:~$ ((rem=x%y))
myubuntu@myubuntu-VirtualBox:~$ echo $rem
2

Division

myubuntu@myubuntu-VirtualBox:~$ ((div=x/y))
myubuntu@myubuntu-VirtualBox:~$ echo $div
1

If we see the division result is not proper. (()) is not suited for float values

myubuntu@myubuntu-VirtualBox:~$ a=5.6
myubuntu@myubuntu-VirtualBox:~$ b=3.2
myubuntu@myubuntu-VirtualBox:~$ ((sum=a+b))
bash: ((: 5.6: syntax error: invalid arithmetic operator (error token is ".6")

Handling float values

bc -> bash calculator is used to handle floating point numbers

myubuntu@myubuntu-VirtualBox:~$ a=3.6
myubuntu@myubuntu-VirtualBox:~$ b=4.5
myubuntu@myubuntu-VirtualBox:~$ bc<<<"$a+$b"
8.1
myubuntu@myubuntu-VirtualBox:~$ x=10
myubuntu@myubuntu-VirtualBox:~$ y=3
myubuntu@myubuntu-VirtualBox:~$ bc<<<"$x/$y"
3

After using bc also we are not able to see the exact result

myubuntu@myubuntu-VirtualBox:~$ bc<<<"scale=2; $x/$y"
3.33
myubuntu@myubuntu-VirtualBox:~$ bc<<<"scale=3; $x/$y"
3.333
myubuntu@myubuntu-VirtualBox:~$ bc<<<"scale=4; $x/$y"
3.3333
⚠️ **GitHub.com Fallback** ⚠️