Mathematical Aspect of Linux Shell Programming – Part IV

In this post I will be discussing the Scripts from the Mathematical and Number point of view. Although I have posted a more complex script (Simple Calculator) in the previous post, but on a user part it was difficult to understand and hence I thought to make you people learn the other useful side of learning in small packets.

Learn Shell Scripting Part 4

Shell Scripting Part 4

Prior to this article, three article of Shell Scripting Series are published and they are:

  1. Understand Linux Shell and Basic Shell Scripting – Part I
  2. 5 Shell Scripts to Learn Shell Programming – Part II
  3. Sailing Through The World of Linux BASH Scripting – Part III

Let’s start the further learning process with some new exciting scripts, start with Mathematics scripts:

Script 1: Additions

Create a file “Addition.sh” and chmod 755 to the script as described in previous post and run it.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(expr "$a" + "$b") 
echo $a + $b = $x
Sample Output
[[email protected] ~]# vi Additions.sh
[[email protected] ~]# chmod 755 Additions.sh
[[email protected] ~]# ./Additions.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
13 
12 + 13 = 25

Download Additions.sh

Script 2: Substraction

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
x=$(($a - $b)) 
echo $a - $b = $x

Note: Here we replaced the expr and let the mathematical calculation be performed in shell.

Sample Output
[[email protected] ~]# vi Substraction.sh
[[email protected] ~]# chmod 755 Substraction.sh
[[email protected] ~]# ./Substraction.sh

“Enter the First Number: ” 
13 
“Enter the Second Number: ” 
20 
13 - 20 = -7

Download Substraction.sh

Script 3: Multiplication

So far you would be enjoying a lot, learning scripts in such an easy way, so the next in chronological order is Multiplication.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a * $b = $(expr $a \* $b)"

Note: Yup! Here we didn’t put the value of multiplication in a variable but performed it directly in output statement.

Sample Output
[[email protected] ~]# vi Multiplication.sh
[[email protected] ~]# chmod 755 Multiplication.sh
[[email protected] ~]# ./Multiplication.sh

“Enter the First Number: ” 
11 
“Enter the Second Number: ” 
11 
11 * 11 = 121

Download Multiplication.sh

Script 4: Division

Right! Next is Division, and again it is a very simple script. Check it Yourself.

#!/bin/bash
echo “Enter the First Number: ” 
read a 
echo “Enter the Second Number: ” 
read b 
echo "$a / $b = $(expr $a / $b)"
Sample Output
[[email protected] ~]# vi Division.sh
[[email protected] ~]# chmod 755 Division.sh
[[email protected] ~]# ./Division.sh

“Enter the First Number: ” 
12 
“Enter the Second Number: ” 
3 
12 / 3 = 4

Download Division.sh

Script 5: Table

Fine! What after these basic mathematical operation. Lets write a script that prints table of any number.

#!/bin/bash
echo “Enter The Number upto which you want to Print Table: ” 
read n 
i=1 
while [ $i -ne 10 ] 
do 
i=$(expr $i + 1) 
table=$(expr $i \* $n) 
echo $table 
done
Sample Output
[[email protected] ~]# vi Table.sh
[[email protected] ~]# chmod 755 Table.sh
[[email protected] ~]# ./Table.sh

“Enter The Number upto which you want to Print Table: ” 
29 
58 
87 
116 
145 
174 
203 
232 
261 
290

Download Table.sh

Script 6: EvenOdd

We as a child always have carried out calculation to find if the number is odd or even. Won’t it be a good idea to implement it in script.

#!/bin/bash
echo "Enter The Number" 
read n 
num=$(expr $n % 2) 
if [ $num -eq 0 ] 
then 
echo "is a Even Number" 
else 
echo "is a Odd Number" 
fi
Sample Output
[[email protected] ~]# vi EvenOdd.sh
[[email protected] ~]# chmod 755 EvenOdd.sh
[[email protected] ~]# ./EvenOdd.sh

Enter The Number 
12 
is a Even Number
[[email protected] ~]# ./EvenOdd.sh

Enter The Number 
11 
is a Odd Number

Download EvenOdd.sh

Script 7: Factorial

Next is to find the Factorial.

#!/bin/bash 
echo "Enter The Number" 
read a 
fact=1 
while [ $a -ne 0 ] 
do 
fact=$(expr $fact \* $a) 
a=$(expr $a - 1) 
done 
echo $fact
Sample Output
[[email protected] ~]# vi Factorial.sh
[[email protected] ~]# chmod 755 Factorial.sh
[[email protected] ~]# ./Factorial.sh

Enter The Number 
12 
479001600

You may now relax with a feeling that calculating 12*11*10*9*7*7*6*5*4*3*2*1 would be more difficult than a simple script as produced above. Think of the situation where you require to find 99! or something like that. Sure! This script will be very much handy in that situation.

Download Factorial.sh

Script 8: Armstrong

Armstrong Number! Ohhh You forget what an Armstrong Number is. Well an Armstrong number of three digits is an integer such that the sum of the cubes of its digits is equal to the number itself. For example, 371 is an Armstrong number since 3**3 + 7**3 + 1**3 = 371.

#!/bin/bash 
echo "Enter A Number" 
read n 
arm=0 
temp=$n 
while [ $n -ne 0 ] 
do 
r=$(expr $n % 10) 
arm=$(expr $arm + $r \* $r \* $r) 
n=$(expr $n / 10) 
done 
echo $arm 
if [ $arm -eq $temp ] 
then 
echo "Armstrong" 
else 
echo "Not Armstrong" 
fi
Sample Output
[[email protected] ~]# vi Armstrong.sh
[[email protected] ~]# chmod 755 Armstrong.sh
[[email protected] ~]# ./Armstrong.sh

Enter A Number 
371 
371 
Armstrong
[[email protected] ~]# ./Armstrong.sh

Enter A Number 
123 
36 
Not Armstrong

Download Armstrong.sh

Script 9: Prime

The last script is to distinguish whether a number is prime or not.

#!/bin/bash 
echo “Enter Any Number”
read n
i=1
c=1
while [ $i -le $n ]
do
i=$(expr $i + 1)
r=$(expr $n % $i)
if [ $r -eq 0 ]
then
c=$(expr $c + 1)
fi
done
if [ $c -eq 2 ]
then
echo “Prime”
else
echo “Not Prime”
fi
Sample Output
[[email protected] ~]# vi Prime.sh
[[email protected] ~]# chmod 755 Prime.sh
[[email protected] ~]# ./Prime.sh

“Enter Any Number” 
12 

“Not Prime”

Download Prime.sh

That’s all for now. In our very next article we will be covering other mathematical programs in the shell Scripting programming language. Don’t forget to mention your views regarding article in the Comment section. Like and share us and help us spread. Come Visiting tecmint.com for News and articles relating to FOSS. Till then Stay tuned.

If You Appreciate What We Do Here On TecMint, You Should Consider:

TecMint is the fastest growing and most trusted community site for any kind of Linux Articles, Guides and Books on the web. Millions of people visit TecMint! to search or browse the thousands of published articles available FREELY to all.

If you like what you are reading, please consider buying us a coffee ( or 2 ) as a token of appreciation.

Support Us

We are thankful for your never ending support.

RedHat RHCE and RHCSA Certification Book
Linux Foundation LFCS and LFCE Certification Preparation Guide

You may also like...

1 Response

Got something to say? Join the discussion.

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.