Shell Script Calulate Area and Circumference of Circle

in Categories Shell Math last updated April 4, 2008

A circle is one of the simple shapes of Euclidean geometry. It is the locus of all points in a plane at a constant distance, called the radius, from a fixed point, called the center. Through any three points not on the same line, there passes one and only one circle.

A diameter is a chord passing through the center. The length of a diameter is twice the radius. A diameter is the largest chord in a circle.

Circles are simple closed curves which divide the plane into an interior and an exterior. The circumference of a circle is the perimeter of the circle, and the interior of the circle is called a disk.

Sample Shell Script To Calculate Area and Circumference of Circle

#!/bin/bash
# Shell script to calulate area and Circumference of circle. 
# It take radius of a circle as input.
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
# Lesson on Circumference of a Circle : 
#  Visit http://www.mathgoodies.com/lessons/vol2/circumference.html
echo -n "Enter the radius of a circle : "
read r
 
# use formula to get it
area=$(echo "scale=2;3.14 * ($r * $r)" | bc)
 
# use formula to get it
d=$(echo "scale=2;2 * $r"|bc)
circumference=$(echo "scale=2;3.14 * $d"| bc)
 
echo "Area of circle is $area"
echo "Circumference of circle is $circumference"

Shell script to read 3 numbers and find the greaters of the three

in Categories Shell Math last updated April 4, 2008
#!/bin/bash
# Shell script to read 3 numbers and find the greaters of the three
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
echo -n "Please enter three numbers (separate number by space) : "
read a b c
# compare a with b and c. Note -a is logical and operator
if [ $a -gt $b -a $a -gt $c ]
then
   big=$a
elif  [ $b -gt $a -a $b -gt $c ] # compare b with a and c
then
   big=$b
elif  [ $c -gt $a -a $c -gt $b ] # compare c with a and b
then
   big=$c
elif [ $a -eq $b -a $a -eq $c -a $b -eq $c -a $c -eq $b ] # see if all of them are equal or not
then
   big="All three numbers are same (equal)"
else # something must be wrong if we are here, like one of number is character such as 'A'
   big="Can not guess greaters of three numbers"
fi
# display result 
echo "Result : $big"

Shell Script to display current date, calendar, and the number of user logged

in Categories Academic last updated April 3, 2008

This script use the concept of command substitution. It allows allows the output of a command to replace the command name. There are two forms:

$(command)

or

`command`

Bash shell performs the expansion by executing command and replacing the command substitution with the standard output of the command, with any trailing newlines deleted. Embedded newlines are not deleted, but they may be removed during word splitting.

For example you can execute date command to display todays date and then set a variable called NOW:
NOW=$(date)
or
NOW=`date`
To display back variable value simply run echo command:
echo $NOW

Sample Shell Script

#!/bin/bash
# Shell script to display current date, calendar, and the number of
# user logged.
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# ----------------------------------------------------------------------
echo "Today is $(date)"
echo ""
 
echo "Calendar :"
cal
 
echo "Number of users currently logged : $(who | wc -l)"

Shell Script to ask user his / her name and then display it with a G’Day/Good morning message

in Categories Academic last updated April 3, 2008

This script greets user with a message. Then it displays prompt asking user her name. Once name entered it will display Gooday message using echo command.

read statement will read one line from the user (keyboard) or from file and store it to a variable called yourname.

#!/bin/bash
# Shell Script to ask user his/her name and then display it with a
# GoodDay/Good morning message
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project <http://cyberciti.biz/fb/>
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
 
echo "Hi! I'm $(hostname) computer!!"
echo -n "May I know your name please ? "
read yourname
echo "Goo Day $yourname"

Shell script to find the number of files present in the current directory without using WC command

in Categories Academic last updated October 14, 2009
#!/bin/bash
# Shell script to find the number of files present in the current
# directory without using WC command.
# NOTE/TIP:
# If allowed to use WC command then it should be as follows:
# ls | wc -l
# -------------------------------------------------------------------------
# Copyright (c) 2005 nixCraft project
# This script is licensed under GNU GPL version 2.0 or above
# -------------------------------------------------------------------------
# This script is part of nixCraft shell script collection (NSSC)
# Visit http://bash.cyberciti.biz/ for more information.
# -------------------------------------------------------------------------
FILE="/tmp/count.txt"
 
echo -n "Enter directory name : "
read dname
 
ls $dname > $FILE
 
echo "No of files in directory : $(grep [^*$] $FILE -c)"
rm -f $FILE