practicals os gtu for practice
DESCRIPTION
B.E computer 4th semester practicals of Operating System.UnixTRANSCRIPT
Practical-3
Aim : Write a shell script that text a name string from user and print
it with proper title.
clear
echo “Enter your name : “
read nam
echo “Welcome “$nam” !!”
Output:
Enter your name:
Pranav
Welcome Pranav !!
Practical-4
Aim : Write a shell script that performs simple arithmetic operation
on given input.
clear
echo “Enter first no :”
read a
echo “Enter second no :”
read b
echo “1. Addition”
echo “2. Subtraction”
echo “3. Multiplication”
echo “4. Division”
echo “5. Modulo operation”
echo “6. Exit”
echo “Enter your choice : “
read ch
case $ch in
1) echo Answer = ` expr $a + $b`;;
2) echo Answer = ` expr $a - $b`;;
3) echo Answer = ` expr $a \* $b`;;
4) echo Answer = ` expr $a / $b`;;
5) echo Answer = ` expr $a % $b`;;
6) exit
esac
Output:
Enter first no:
45
Enter second no:
9
1. Addition
2. Subtraction
3. Multiplication
4. Division
5. Modulo operation
6. Exit
Enter your choice :
4
Answer=5
Practical-5
Aim: Write a shell script to wish Good morning, Good afternoon and
Good night as per current system time.
clear
date>dt
tm= `cut –c 12-13 dt`
echo $tm
if [ $tm -lt 12 ]
then
echo “Good Morning !!”
elif [ $tm -gt 12 –a $tm -lt 16 ]
then
echo “Good Afternoon !!”
elif [ $tm –gt 16 –a $tm -lt 20 ]
then
echo “Good Evening !!”
else
echo “Good Night !!”
fi
Output:
Good Afternoon
Practical-6
Aim: Write a shell script to generate fibonacci number from 1 to n.
clear
echo “Enter the number upto which you want series : “
read n
n1=0
n2=1
echo $n1
echo $n2
for ((i=0;i<n;i++))
do
n3=` expr $n1 + $n2`
echo $n3
n1=$n2
n2=$n3
done
Output:
Enter the number upto which you want series :
5
0
1
1
2
3
5
Practical-7
Aim: Write a shell script to generate prime numbers from 1 to n,
where n is any positive integer number entered by user.
clear
echo "Enter the number upto which you want prime numbers: "
read n
for ((i=1;i<=n;i++))
do
flag=0
for ((j=2;j<i;j++))
do
if [ `expr $i % $j` -eq 0 ]
then
flag=1
fi
done
if [ $flag -eq 0 ]
then
echo $i
fi
done
Output:
Enter the number upto which you want prime numbers:
10
1
2
3
5
7
Practical-8
Aim: Write a shell script to print and add all even numbers between
given range.
clear
echo “Enter Starting no: “
read n1
echo “Enter Ending no: “
read n2
sum=0
for ((i=n1;i<=n2;i++))
do
if [ ` expr $i % 2` -eq 0 ]
then
echo $i
sum= ` expr $sum + $i`
fi
done
echo “Sum : “$sum
Output:
Enter Starting no:
2
Enter Ending no:
8
2
4
6
8
Sum : 20
Practical-9
Aim: Write a shell script that reverses the number.
clear
echo “Enter any number: “
read n
sum=0
while [ $n –gt 0 ]
do
a=` expr $n % 10`
sum=` expr $sum \* 10 + $a`
n=` expr $n / 10`
done
echo “Reverse no : “ $sum
Output:
Enter any number:
435
Reverse no : 534
Practical-10
Aim: Write a shell script to find factorial of a given number.
clear
echo “Enter the number: “
read n
fact=1
for ((i=1;i<=n;i++))
do
fact=` expr $fact \* $i`
done
echo “Factorial : “ $fact
Output:
Enter the number:
4
Factorial : 24
Practical-11
Aim: Write a shell script to check whether the string is palindrome.
clear
echo "Enter any string: "
read a
b=$a
d=` expr $a | wc -c`
c=` expr $d - 1`
while [ $c -gt 0 ]
do
n=` expr $a | cut -c $c`
r=$r$n
c=` expr $c - 1`
done
echo $r
if [ $b == $r ]
then
echo "String is palindrome"
else
echo "Not palindrome string"
fi
Output:
Enter any string:
nayan
nayan
String is palindrome.
Practical-12
Aim: Write a shell script that reverses the string.
clear
echo "Enter any string: "
read a
b=$a
d=` expr $a | wc -c`
c=` expr $d - 1`
while [ $c -gt 0 ]
do
n=` expr $a | cut -c $c`
r=$r$n
c=` expr $c - 1`
done
echo “Reverse string: “ $r
Output:
Enter any string:
laptop
Reverse string: potpal
Practical-13
Aim: Write a shell script for generating mark sheet, calculate grade
also.
clear
echo "Enter no of students : "
read ns
for ((i=1 ; i<=ns ; i++ ))
do
echo ""
echo "Enter roll no of student $i : "
read rn[i]
echo "Enter subject1 marks : "
read s1[i]
echo "Enter subject2 marks : "
read s2[i]
echo "Enter subject3 marks : "
read s3[i]
done
for ((i=1 ; i<=ns ; i++))
do
total[i]=` expr ${s1[i]} + ${s2[i]} + ${s3[i]} `
avg[i]=` expr ${total[i]} / 3 `
if [ $avg[i] -ge 70 ]
then
grd[i]="DISTINCTION"
elif [ $avg[i] -ge 60 -a $avg[i] -le 69 ]
then
grd[i]="FIRSTCLASS"
elif [ $avg[i] -ge 50 -a $avg[i] -le 59 ]
then
grd[i]="SECONDCLASS"
elif [ $avg[i] -ge 40 -a $avg[i] -le 49 ]
then
grd[i]="PASSCLASS"
else
grd[i]="FAIL"
fi
done
for ((i=1 ; i<=ns ; i++))
do
echo ""
echo "-------------------------------------------------------------------"
echo "Roll no : " ${rn[i]}
echo "-------------------------------------------------------------------"
echo " Subject 1 " ${s1[i]}
echo " Subject 2 " ${s2[i]}
echo " Subject 3 " ${s3[i]}
echo "-------------------------------------------------------------------"
echo " Total " ${total[i]}
echo "-------------------------------------------------------------------"
echo " Percentage : " ${avg[i]}
echo "-------------------------------------------------------------------"
echo " Grade : " ${grd[i]}
echo "-------------------------------------------------------------------"
echo ""
done
Output:
Enter no of student: 1
Enter roll no for student1: 21
Enter marks for subject1: 90
Enter marks for subject2: 91
Enter marks for subject3: 92
-------------------------------------------------------------------Roll no: 21------------------------------------------------------------------- Subject 1 90 Subject 2 91 Subject 3 92-------------------------------------------------------------------
Total 276------------------------------------------------------------------- Percentage: 91------------------------------------------------------------------- Grade: Distinction-------------------------------------------------------------------
Practical-14
Aim: write a shell script that evaluates the following series
1+1/1+1/2+1/3+…+1/n.
clear
echo "Enter no upto which series to be printed"
read n
sum=1
for ((i=1;i<=n;i++))
do
sum=`echo $sum + 1/$i | bc -l`
done
echo $sum
Output:
Enter no upto which series to be printed: 22.5
Practical-15
Aim: Write a shell script for calendar for current month & year also
for range of months.
clear
cal
echo ""
echo ""
echo "Enter year"
read y
echo "Enter starting month"
read m1
echo "Enter ending month"
read m2
for ((i=m1;i<=m2;i++))
do
cal $i $y
done
Output:
Enter year: 2009
Enter starting month: 2
Enter ending month: 3
Note: It will show February 2009 and March 2009 calendar.
Practical-16
Write a shell script to display the following menu. It should take
appropriate action when an option is selected.
1) Files – 1. List files
2. Make a file
3. delete a file
4. Copy a file
2) Directory – 1. Make a directory
2. Display current directory
3. Change current directory
4. Remove current directory
3) Quit
clear
echo "1. FILE"
echo "2. DIRECTORY"
echo "3. QUIT"
echo ""
echo -n "Enter your choice : "
read ch
case $ch in
1) echo ""
echo "1. LIST FILES"
echo "2. MAKE FILE"
echo "3. DELETE FILE"
echo "4. COPY FILE"
echo ""
echo -n "Enter your choice : "
read ch1
case $ch1 in
1) echo""
ls;;
2) echo ""
echo -n "Enter file name : "
read fn
cat>$fn
echo "File successfully created"
echo ""
ls;;
3) echo ""
echo -n "Enter file name to delete : "
read fn
rm -r $fn
echo ""
echo "File successfully deleted"
echo ""
ls;;
4) echo ""
echo -n "Enter file name from you want to copy : "
read f1
echo -n "Enter file name to you want to copy : "
read f2
cp $f1 $f2
echo ""
echo "File successfully copied";;
esac;;
2) echo ""
echo "1. MAKE DIRECTORY"
echo "2. DISPLAY CURRENT DIRECTORY"
echo "3. CHANGE DIRECTORY"
echo "4. RENAME DIRECTORY"
echo ""
echo -n "Enter your choice : "
read ch2
case $ch2 in
1) echo ""
echo -n "Enter the name for directory : "
read dn
mkdir $dn
echo ""
echo "Directory successfully created"
echo ""
ls;;
2) echo -n "Current directory : "
pwd
echo "";;
3) echo ""
echo -n "Current directory : "
pwd
echo -n "Enter the name of directory you want to go to : "
read dn
cd $dn
echo "Directory has been changed succesfully"
echo -n "Curren directory : "
pwd
echo "";;
4) echo ""
echo -n "Enter old name : "
read od
echo -n "Enter new name : "
read nd
mv $od $nd
echo "Directory successfully renamed"
echo "";;
esac;;
3) exit;;
esac
Output:
1. FILE
2. DIRECTORY
3. QUIT
Enter your choice: 1
1. LIST FILES
2. MAKE FILE
3. DELETE FILE
4. COPY FILE
Enter your choice: 1
All files in current directory are listed here.
Practical-17
Write a shell script to check whether the entered number is
Armstrong number or not using the command line argument.
clear
no=$1
n=$1
while [ $n -gt 0 ]
do
a=` expr $n % 10`
a3=` expr $a \* $a \* $a`
temp=` expr $temp + $a3`
n=` expr $n / 10`
done
if [ $temp -eq $no ]
then
echo "It is Armstrong number"
else
echo "It is not Armstrong number"
fi
Output:
>sh Armstrong.sh 159
It is not Armstrong number
Practical-18
Aim: Write a shell script to count number of characters, words &
lines.
clear
echo -n "Enter file name : "
read fn
c=` wc -c<$fn `
w=` wc -w<$fn `
l=` wc -l<$fn `
echo "No. of characters : " $c
echo "No. of Words : " $w
echo "No. of Lines : " $l
Output:
Enter file name: temp.sh
No. of characters: 359
No. of words: 45
No. of lines: 6
Practical-19
Aim: Write a shell script to convert uppercase to lowercase latter for
a given file.
clear
echo "Enter file name : "
read fn
a=` tr '[A-Z]' '[a-z]' < $fn`
echo $a
Output:
Enter File name: temp.sh
ALL THE CONTENT IS CONVERTED INTO CAPITAL LETTERS.
Practical-20
Aim: Write a shell script that prints only given no. of lines from top &
bottom of a file.
clear
echo -n "Enter file name : "
read fn
echo -n "No. of line : "
read n
t=` head -$n < $fn`
b=` tail -$n < $fn`
echo "Top : "
echo $t
echo "Bottom : "
echo $b
Output:
Enter file name: temp.sh
No. of line: 3
Note: 3 lines from top and 3 lines from bottom are displayed here.
Practical-21
Aim: Write a shell script for comparision between two strings
whether both the strings are equal or not.
clear
echo "Enter String 1 : "
read str1
echo "Enter String 2 : "
read str2
s1=` expr $str1 | wc -c`
s1=` expr $s1 - 1`
s2=` expr $str2 | wc -c`
s2=` expr $s2 - 1`
flag=0
if [ $s1 -ne $s2 ]
then
echo "Strings are different"
else
for (( i=1 ; i<=s1 ; i++ ))
do
sc1=` expr $str1 | cut -c $i`
sc2=` expr $str2 | cut -c $i`
if [ $sc1 != $sc2 ]
then
flag=1
break
fi
done
if [ $flag -eq 0 ]
then
echo "Strings are equal"
else
echo "Strings are different"
fi
fi
Output:
Enter string 1: Maulik
Enter string 2: Dantara
Strings are different.
Practical-22
Aim: Write a shell script that counts occurrence of a word in file.
clear
echo -n "Enter file name : "
read fn
echo -n "Enter the pattern : "
read pt
c=`grep -io $pt $fn | wc -w`
echo "No. of occurrence : " $c
Output:
Enter file name: temp.sh
Enter the pattern: file
No. of occurrence: 4
Practical-23
Aim: Write a shell script which display full names like January if we
enter jan, janu, janua, and so on…
clear
echo "Enter initials of month :"
read mon
case $mon in
ja*) echo "Month is January.";;
f*) echo "Month is February.";;
mar*) echo "Month is March.";;
ap*) echo "Month is April.";;
may*) echo "Month is May.";;
Jun*) echo "Month is June.";;
jul*) echo "Month is July.";;
au*) echo "Month is August.";;
s*) echo "Month is September.";;
o*) echo "Month is October.";;
n*) echo "Month is November.";;
d*) echo "Month is December.";;
*) echo "Invalid month";;
esac
Ouput:
Enter initials of month: Jan
Month is January.
Practical-24
Aim: Write a shell script that takes a command line argument &
report whether it is a directory, a file or some else.
clear
if test -f $1
then echo "it is a file"
elif test -d $1
then echo "it is a directory"
fi
Output:
>sh checkfile.sh temp
It is a directory.
Practical-25
Aim: Write a shell script to accept two filenames, if both files exist
then contents of first file should appended to second. If second file
does not exist then create it with the contents of first file.
clear
echo "Enter first file name :"
read f1
echo "Enter second file name :"
read f2
if test -f $f1
then
echo "File $f1 is already exist"
else
echo "File created successfully"
cat>$f1
fi
if test -f $f2
then
echo "File $f2 is alreadt exist"
else
echo "File created successfully"
cat>$f2
fi
cat<$f1>>$f2
Output:
Enter first file name: tmp1.sh
Enter second file name: tmp2.sh
File tmp1 is already exist.
File tmp2 created successfully.
Note: All the content of tmp1 is copied to tmp2.