shell programming

60
SHELL PROGRAMMING Ex.NO:2 AREA OF THE CIRCLE Aim: To write a shell program to find the area of the circle. procedure: Step 1: Start the Process Step 2: Read the radius Step 3: Calculate the area.

Upload: koushic19949717

Post on 25-Jul-2015

33 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Shell Programming

SHELL PROGRAMMING

Ex.NO:2 AREA OF THE CIRCLE

Aim: To write a shell program to find the area of the circle.

procedure:

Step 1: Start the Process

Step 2: Read the radius

Step 3: Calculate the area.

Step 4: Print the Radius and Area

Step 5: Stop the process

Flow Chart:

Page 2: Shell Programming

Program

echo "Enter the radius of the circle"

read r

area=$(echo "scale=2; 3.14 * ($r * $r)" |bc )

echo "Radius of the circle $r"

echo "Area of the circle $area"

Output:

Enter the radius of the circle5Radius of the circle 5Area of the circle 78.50

Result : Thus the program to find the area of the circle is executed successfully.

Page 3: Shell Programming

Ex.NO:3. CALCULATING GROSS SALARY OF AN EMPLOYEE

Aim: To write a shell program to calculate Gross salary of an employee.

Procedure:

step1: Start the process

step2: Read the basic

step3: calculate da and hra

step4: calculate the gross

step5: Print the Gross salary

step6: Stop the process

Flow Chart:

Page 4: Shell Programming

Program:

echo "Basic Salary"

read basic

da=`echo $basic \* 40/100 |bc`

hra=`echo $basic \* 20/100 |bc`

gross=`echo $basicv + $da + $hra |bc`

echo "Grosssalary=Rs.$gross"

Output:

[dha@localhost ~]$ sh sal.sh

Basic Salary 5000 Grosssalary=Rs.8000

Result: Thus the program to find the gross salary of an employee is executed successfully.

Ex.NO:4 UPPER TO LOWER AND LOWER TO UPPER USING CASE STATEMENT

Aim:To Write a Shell Program to convert Upper to lower and lower to Upper using ‘case’

statements.

Algorithm:

Step 1: Start the process

Step 2: Read the choice

Step 3: Read the file to be converted

Step 4: Convert the case using tr [:lower:] [:upper:]

Page 5: Shell Programming

Step 5: Print the result

Step 6: Stop the process

Flow Chart:

Start

Display menu 1. Lower to upper2. Upper to lower

Choice

Case?

Choice

Page 6: Shell Programming

Program:

echo "Menu"

echo "1.Lower->Upper"

echo "2.Upper->Lower"

echo "Enter your Choice"

read ch

case $ch in

1)echo "Enter the file name"

read f

tr [:lower:] [:upper:]<$f;;

2)echo "Enter the file name"

read f

tr [:upper:] [:lower:]<$f;;

esac

Output:

[dha@localhost ~]$ sh conver.sh

Choice Choice

End

Page 7: Shell Programming

Menu

1.Lower->Upper

2.Upper->Lower

Enter your Choice

1

Enter the file name

f1

HAI

HELLO

[dha@localhost ~]$ sh conver.sh

Menu

1.Lower->Upper

2.Upper->Lower

Enter your Choice

2

Enter the file name

f1

hai

hello

Result:Thus the Shell Program to convert Upper to Lower and Lower to Upper using ‘case’

statements is executed successfully.

Ex.NO:5 ARITHMETIC OPERATIONS USING CASE STATEMENTS

Aim:To Write a Shell Program to perform Arithmetic Operations using ‘case’ statements

Page 8: Shell Programming

Algorithm:

Step 1: Start the process

Step 2: Read two numbers

Step 3: Read the choice

Step 4: Perform the arithmetic Operations

Step 5: Print the result

Step 6: Stop the process.

Flow Chart

No

Start

Read the limilt

Initialize a=-1, b=1, i=1

While (i<=n)

Page 9: Shell Programming

Yes

Program:

echo "A Simple Calculator"

echo "Enter 1 for Addition, 2 for Subtraction,\n"

echo "3 for Multiplication, 4 for Division and 5 for Exit\n"

echo "Enter Two Numbers"

read a b

echo "Enter The Choice of Operation"

read choice

case $choice in

1) res=`expr $a + $b`;;

2) res=`expr $a - $b`;;

3) res=`expr $a * $b`;;

4) res=`expr $a / $b`;;

5) exit;;

esac

echo "Result= $res"

c=a+b

Print c

a=b b=c

i=i+1

Stop

Page 10: Shell Programming

Output:

[dha@localhost ~]$ sh case.sh

A Simple Calculator

Enter 1 for Addition, 2 for Subtraction,\n

3 for Multiplication, 4 for Division and 5 for Exit\n

Enter Two Numbers

7 3

Enter The Choice of Operation

2

Result= 4

Result : Thus the Arithmetic operations using case is executed successfully.

Ex.NO:6 POSITIVE OR NEGATIVE OR ZERO

Aim:

To Write a Shell Program to find the given number is Positive or Negative or Zero using ‘if’

condition

Algorithm:

Step1: Start the process

Step2: Read the number.

Step3: if number is greater than 0

Page 11: Shell Programming

a. Number is positive

Else if number is lesser than 0

b. Number is negative

Else

c. Number is Zero

Step4: Print the result.

Step5: Stop the process

Flow Chart

Page 12: Shell Programming

Program:

echo "Enter a Number" read n if test $n -gt 0 then echo "$n is Positive" elif test $n -lt 0 then echo "$n is Negative" else echo "Zero" fi

Output:-

[dha@localhost ~]$ sh pos.sh Enter a Number 4 4 is Positive

[dha@localhost ~]$ sh pos.sh Enter a Number 0

Page 13: Shell Programming

Zero [dha@localhost ~]$ sh pos.sh Enter a Number -3 -3 is Negative

Result : Thus the shell program to find the given number is positive or negative or is executed successfully.

Ex.NO:7 FIBONACCI SERIES

Aim:

To Write a Shell Program to find the Fibonacci Series of a given number using ‘while’ loop.

Procedure:

Step1: Start the process

Step2: Read the range

Step3: while i less than range.

c=a+b;

i=i+1;

Step4: print the result

Step 5: Stop the process.

Flow Chart

Page 14: Shell Programming

Program:

echo "program to generate Fibonacci Series" echo "enter the range" read n a=0 b=1 echo "Fibonacci series" echo $a echo $b i=2 while test $i -lt $n do c=`expr $a + $b` echo $c i=`expr $i + 1` a=$b b=$c done

Output:

[dha@localhost ~]$ sh fib.sh program to generate Fibonacci Series enter the range 7 Fibonacci series 0

Page 15: Shell Programming

1 1 2 3 5 8

Result: Thus the Shell Program to find the Fibonacci Series of a given number using ‘while’ is executed successfully.

Ex.NO:8 SORTING THE CONTENT OF THE FILE

Aim:

To Write a Shell Program to sort the given names in a file using ‘while’ loop.

Algorithm:Step 1: Start the process

Step 2: Get the File Name

Step 3: Read the Number of Names

Step 4: Read the Names

Step 5: Use the Sort function

Step 6: Display the result

Step 7: Stop the process

Flow Chart

Page 16: Shell Programming

Program:-

echo "Enter the file Name"

read x

echo "Enter the number of names"

read num

echo " Enter $num strings"

while test $num -gt 0

do

read name

echo $name>>$x

num=`expr $num - 1`

done

echo "the storted names are:"

sort $x

rm $x

Output

enter the file nameempnamesenter the number of names4enter 4 strings

Page 17: Shell Programming

srijalathaasmikeerthithe sorted names are:asmikeerthilathasrija

Result:

Thus the shell program to sort the names is executed successfully.

Ex.NO:9 FACTORIAL OF A GIVEN NUMBER

Aim:To Write a Shell Program to find the Factorial of a given number

Procedure:

Step 1: Start the process.

Step 2: Read the input

Step 3: if the input is 1

Then factorial is 1

else

Multiply the successive numbers.

Step 4: Display the Result

Step 5: Stop the process

Page 18: Shell Programming

Flow Chart

Program:

echo "FACTORIAL OF A NUMBER"

echo "Enter a number"

read n

i=1

f=1

if test $n -eq 0

then

echo "factorial is 1"

else

while test $i -le $n

Page 19: Shell Programming

do

f=`expr $f \* $i`

i=`expr $i + 1`

done

echo "Factorial is $f"

fi

Output:

[jp@TRPLinuxserver ~]$ sh fact.shFACTORIAL OF A NUMBEREnter a number5Factorial is 120

Results:

Thus the shell program to find the factorial of a given number is executed successfully.

Ex.NO:10 PRIME NUMBER

Aim:

To Write a Shell Program to check whether the given number is Prime number or not.

.

Procedure:

Step 1: Start the process

Step 2: Read the number.

Step 3: Calculate the number is divided by the same number without any

Page 20: Shell Programming

Remainder,then it is prime.

Step 4: Display the result

Step 5: Stop the process

Flow Chart

Program

i=2rem=1echo -e "Enter a number: \c"read numif [ $num -lt 2 ]; thenecho -e "$num is not prime\n"exit 0fiwhile [ $i -le `expr $num / 2` -a $rem -ne 0 ]; dorem=`expr $num % $i`i=`expr $i + 1`doneif [ $rem -ne 0 ]; thenecho -e "$num is prime\n"elseecho -e "$num is not prime\n"fi

Output

Page 21: Shell Programming

Enter a number: 55 is prime

Enter a number: 2222 is not prime

Results:

Thus the shell program to find the given number is prime executed successfully.

Ex.NO:11 MULTIPLICATION TABLE

Aim:

To Write a Shell Program to generate the Multiplication table of a given number using ‘for’ loop.

Algorithm:

Step 1: Start the process

Step 2: Read the number

Step 3: for 1 to 10

Multiply the number.

Step 4: Display the result

Step 5: Stop the process

Flow Chart

Page 22: Shell Programming

Program:

echo "Enter the Number" read n for i in 1 2 3 4 5 6 7 8 9 10 do m=`expr $n \* $i |bc` echo $i*$n=$m done

Output:

[dha@localhost ~]$ sh mul.sh Enter the Number 5 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 6*5=30 7*5=35 8*5=40 9*5=45 10*5=50

Results:Thus the multiplication table is executed successfully.

Page 23: Shell Programming

Ex.NO:12 SEARCH THE CONTENT IN A FILE USING GREP

Aim:To write a shell program to search the contents of a file..

Algorithm:

1. Start the Program.

2. Enter the Pattern to be searched.

3. Enter the file to be searched..

4. If grep pname in fl name..

5. Pattern found.

6. Otherwise Pattern not found .

7. Stop the Program .

Flow chart :

Program:

echo "Enter the Pattern to be searched : \c"read pnameecho "Enter the file to be used : \c"read flnameecho "Searching for $pname from file $flname"if grep "$pname" $flname

Page 24: Shell Programming

thenecho "Pattern found"elseecho "Pattern not found"fi

Output:

[dha@localhost ~]$ sh grep.shEnter the Pattern to be searched : \creadEnter the file to be used : \csampleSearching for read from file samplereadPattern found

Result:

Thus the content are searched in the specified file and the result is displayed.

Ex.NO:13 USAGE OF AWK FILTER

Aim:

 To Write a Shell Program to print the average pay for an employee using ‘awk’ filter.

Algorithm:

1. Star the Program.

2. Get the Employee abstract from the user.

3. Compile and execute the program.

4. Display the average basic pay.

Page 25: Shell Programming

5. Stop the Program.

Flow Chart:

Program: BEGIN { printf "\t\tEmployee abstract\n\n" } $6 > 7000 { kount++ ; tot += $6 printf "%3d %-20s %-12s %d\n" , kount,$2,$3,$6 }END { printf "\n\tThe average basic pay is %6d\n", tot/kount }

Output: Employee abstract

1 Mano Staff 15000 2 Asmi Lect 20000 3 Bala H.O.D 30000

The average basic pay is 21666

Page 26: Shell Programming

Result: Thus the Shell Program to print the average pay for an employee using ‘awk’ filter is executed successfully.

Ex.NO:14 SECURITY COMMAND

Aim:

To Write a Shell Program to change the Access Mode of a given File.

Algorithm:

1. Start the Program.

2. Enter the file name.

3. Enter the mode.

4. Enter the Permission Mode.

5. Enter the operation.

6. Display the Output.

7. Stop the Program.

Page 27: Shell Programming

Flow Chart:

.

Program:

echo "Enter the file name:"read fecho "Enter mode"read uecho "Enter Permission mode:"read pecho "Enter Operation"read ochmod $u$p$o $fls -l $f

read f

Enter the operation

chmod $u$p$o $f

STOP

Start START

Enter the File Name

Page 28: Shell Programming

Output:

Enter the file name:sampleEnter modegEnter Permission mode:=Enter Operationw-rw--w-r-- 1 22 Feb 26 18:15 sample

Result:

Thus the Shell Program to change the Access Mode of a given File is executed successfully.

Page 29: Shell Programming

C PROGRAMS

Page 30: Shell Programming

Ex.NO:15 PALINDROME

Aim:To Write a ‘C’ Program to check the given number is palindrome or not.

Algorithm:

Step 1: Start the Program.Step 2: Get the number from the user.Step 3: Split up the given number using model operation.Step 4: Store the split values in reverse order.Step 5: If both the numbers match, display as palindrome else display that it is

not a palindrome.Step 6: Stop the program

Flow Chart

Page 31: Shell Programming

Program:

#include<stdio.h>

main(){ int a,b=0,c=0,e; printf("Enter the number"); scanf("%d",&a); e=a; while(a>0) { b=a%10; c=c*10+b; a=a/10; } if(e==c) printf("\nPalindrome\n"); else printf("\nNot a Palildrome\n");

}

Output:

[jp@TRPLinuxserver ~]$ vi pali.c[jp@TRPLinuxserver ~]$ cc pali.c[jp@TRPLinuxserver ~]$ ./a.outEnter the number121Palindrome[jp@TRPLinuxserver ~]$ vi pali.c[jp@TRPLinuxserver ~]$ cc pali.c[jp@TRPLinuxserver ~]$ ./a.outEnter the number156Not a Palildrome

Result:

Thus the program to check the given number is palindrome or not executed successfully.

Page 32: Shell Programming

Ex.NO:16 SWAP THE GIVEN TWO VALUES USING FUNCTIONS

Aim:

To Write a ‘C’ Program to swap the given two values using ‘functions’.

Algorithm:

Step 1: Start the Program.Step 2: Get the two Values from the user.Step 3: Swap the a & b Values.Step 4: Display the After swapping Values.Step 5: Stop the program.

Flow Chart

Program:

#include<stdio.h> main() { void swap1(void); swap1(); } void swap1() { int a,b,c; printf("Enter two numbers:"); scanf("\n %d%d",&a,&b);

Page 33: Shell Programming

c=a;a=b;b=c;printf("The Numbers after swaping...%d%d\n",a,b); }

Output:

[dha@localhost ~]$ cc swap1.c [dha@localhost ~]$ ./a.out Enter two numbers:7 9 The Numbers after swaping...97

Result:

Thus the C program to swap the given number has been executed successfully.

Ex.NO:17 USAGE OF POINTERS

Aim:

To Write a ‘C’ program to add two numbers using Pointers..

Algorithm:

Step 1: Start the program.Step 2: Read the two numbers from the user a&b.Step 3: s=sum (&a,&b). Step 4: Display the sum of the Values.

Step 5: Stop the program

Page 34: Shell Programming

Flow Chart

Program:

#include<stdio.h>main(){int sum(int *,int *);int a,b,s;printf("\nEnter the value of a : ");scanf("%d",&a);printf("\nEnter the value of b : ");scanf("%d",&b);s=sum(&a,&b);printf("\nThe sum of the values are : %d\n",s);return;}int sum(int *x,int *y){return(*x+*y);}

Output:

[dha@localhost ~]$ cc poin.c [dha@localhost ~]$ ./a.out

Enter the value of a : 4

Page 35: Shell Programming

Enter the value of b : 9

The sum of the values are : 13

Result:

Thus the C program to print the value and address of a given number has been executed

successfully

Ex.NO:18 USAGE OF STRUCTURES

Aim:To Write a ‘C’ Program to print the Students Name, Marks using ‘Structure’.

Algorithm: Step 1: Start the Program.

Step 2: Get the number of Students from the user.Step 3: Enter the students Details.Step 4: Enter the Marks.Step 5: Display the Students Record.Step 6: Stop the program.

Flow Chart

Page 36: Shell Programming

Program:

#include<stdio.h> struct student { char name[10][10]; int rollno,m1,m2,m3,total;

Page 37: Shell Programming

}; void main() { int num,i,j; struct student s1[10]; printf("enter the number of students"); scanf("%d",&num); for(i=0;i<num;i++) { printf("Enter the roll number\n"); scanf("%d",&s1[i].rollno); printf("Enter the name \n"); scanf("%s",&s1[i].name); printf("Enter the mark1\n"); scanf("%d",&s1[i].m1); printf("Enter the mark2\n"); scanf("%d",&s1[i].m2); printf("Enter the mark3\n"); scanf("%d",&s1[i].m3); s1[i].total=s1[i].m1+s1[i].m2+s1[i].m3; } printf("The details of the mark list is as follows \n"); printf("\nRollno"); printf("\tname "); printf("\tmark1"); printf("\tmark2"); printf("\tmark3"); printf("\ttotal"); printf("\n"); for(i=0;i<num;i++) { printf("\n%d",s1[i].rollno); printf("\t%s",s1[i].name); printf("\t%d",s1[i].m1); printf("\t%d",s1[i].m2); printf("\t%d",s1[i].m3); s1[i].total=s1[i].m1+s1[i].m2+s1[i].m3; printf("\t%d",s1[i].total); } }

Page 38: Shell Programming

Output:

[dha@localhost ~]$ cc stru.c [dha@localhost ~]$ ./a.out enter the number of students2 Enter the roll number 11 Enter the name vino Enter the mark1 78 Enter the mark2 90 Enter the mark3 86 Enter the roll number 12 Enter the name surya Enter the mark1 67 Enter the mark2 87 Enter the mark3 96 The details of the mark list is as follows

Rollno name mark1 mark2 mark3 total

11 vino 78 90 86 254 12 surya 67 87 96 250

RESULT:

Thus the ‘C’ Program to print the Students Name, Marks using ‘Structure’

Page 39: Shell Programming

Ex.NO:19 LARGEST AND SMALLEST NUMBER USING ARRAY

Aim:To Write a ‘C’ Program to find the Largest and Smallest numbers using ‘array’

Algorithm: Step 1: Start the Program.

Step 2: Enter the number of element.Step 3: if a[r]> large.Step 4: Print the largest element.

Step 5: if a[r] <small.Step 6: Print the Smallest element

Step 6: Stop the program.

Flow Chart

Page 40: Shell Programming
Page 41: Shell Programming

Program:#include<stdio.h> void main() {

int a[10],i,j,x,max,min;

printf("Enter 10 nos:");for(x=0;x<10;x++){

scanf("%d",&a[x]);}max=a[0];for(i=0;i<10;i++){

if(max<a[i+1])max=a[i+1];

}printf("largest no is %d",max);min=a[0];for(j=0;j<10;j++){

if(min>a[j+1])min=a[j+1];

}printf("\nsmallest no is %d",min);

}

Output:

[jp@TRPLinuxserver ~]$ vi largesma.c[jp@TRPLinuxserver ~]$ cc largesma.c[jp@TRPLinuxserver ~]$ ./a.outEnter 10 nos:1020605895545231121

Page 42: Shell Programming

largest no is 89smallest no is 5

Result:

Thus the program to find the largest and smallest using array has been executed successfully using array.

Ex.NO:20 COMMAND LINE ARGUMENTS

Aim:To Write a ‘C’ Program to print the command line arguments.

Program:

#include<stdio.h> int main(int argc, char **argv) { int counter; puts("The Arugements to the Program are: "); for(counter=0;counter<argc;counter++) puts(argv[counter]); return 0; }

Output:

[dha@localhost ~]$ cc comm.c [dha@localhost ~]$ ./a.out The Arugements to the Program are: ./a.out one two three./a.out Onetwothree

Result:

Thus the program to print the command line arguments is executed successfully.

Page 43: Shell Programming

Ex.NO:21 FILE HANDLING

Aim:To write a ‘C’ Program to print the Mark sheet of ‘n’ Students using File Handling.

Algorithm:

Step 1: Start the Program.Step 2: Enter the file name.Step 3: Enter the student details

Step 4: Enter the no. of records.

Step 5: Enter the student details.Step 6: open the file.Step 7. Print the details.Step 8. Stop the Program.

Page 44: Shell Programming

Flow Chart

Program:

#include<stdio.h>main(){FILE *fp1;int rno,m1,m2,m3,n,i,tot,avg;

Page 45: Shell Programming

char fname[10],sname[20];printf("\n Enter the file name:");scanf("%s",fname);fp1=fopen(fname,"W");printf("\n Enter the student details");printf("\n Enter the no.of records:");scanf("%d",&n);for(i=1;i<=n;i++){printf("\n Enter the rollno\t name\t mark1\t mark2\t mark3\t:\n");fscanf(stdin,"%d%s%d%d%d",&rno,sname,&m1,&m2,&m3);tot=m1+m2+m3;avg=tot/3;fprintf(fp1,"%d\t%s\t%d\t%d\t%d\t%d\t%d\n",rno,sname,m1,m2,m3,tot,avg);}fclose(fp1);fprintf(stdout,"\n\n");fp1=fopen(fname,"r");printf("\n rollno Name Mark1 Mark2 Mark3 Total Aveerage\n");for(i=1;i<n;i++);{fprintf(fp1,"%d\t%s\t%d\t%d\t%d\t%d\t %d \n",rno,sname,m1,m2,m3,tot,avg);}fclose(fp1);}}

Output:

[dha@localhost ~]$ cc mano.c[dha@localhost ~]$ ./a.out mano.cEnter the no. of students:2Enter SPRNO:786Enter student name:AsmiEnter Marks:Enter Maths Mark = 100Enter Lab Mark = 98

Enter SPRNO:794Enter student name:VinoEnter Marks:Enter Maths Mark = 90Enter Lab Mark = 95

[dha@localhost ~]$ vi z:marklist.txt

Student Marklist

Page 46: Shell Programming

SPRNO Name M1 M2 Total 786 Asmi 100 98 198 794 Vino 90 95 185

Result:

Thus the program to print the file content is executed successfully.

Ex.NO:22 DEMONSTRATION OF FORK

Aim:To Write a ‘C’ Program to represent Parent and Child Process Id using Fork.

Algorithm: Step 1: Start the Program.

Step 2: Enter the initial id.Step 3: if id==0

Step 4: Print Return value of fork to child.

Step 5: Print Return value of fork to Parent.Step 6. Stop the Program

Page 47: Shell Programming

Flow Chart

Program:

#include<stdio.h>main(){int id;id=fork();if(id==0){printf("\n Return value of fork to child : %d",id);printf("\n Parent process id : %d",getppid());printf("\n Child process id : %d",getpid());}

Page 48: Shell Programming

else{printf("\n Return value of fork to parent : %d",id);printf("\n Parent process id : %d",getppid());printf("\n Child process id : %d\n",getpid());}}

Output:

[dha@localhost ~]$ cc fork.c [dha@localhost ~]$ ./a.out fork.c

Return value of fork to child : 0 Parent process id : 3473 Child process id : 3474 Return value of fork to parent : 3474 Parent process id : 3330 Child process id : 3473Parent: 9 Child: 9

Result:

Thus the program represent Parent and Child Process Id using Forkis executed successfully.

Ex.NO:22 SIGNALS HANDLING

Aim: To write a program for Signal Handling.

Algorithm:

Step 1: Start the Program.Step 2: Declare the variable.Step 3: The signal (SIGNT, change) Display the signal with no interrupt Step 4: Give the Interrupt to the signal.

Step 5: Stop the Program.

Page 49: Shell Programming

Flow Chart:

Program:

#include<stdio.h>#include<signal.h>main(){void change();int i;signal(SIGINT,change);for(;;){printf("\n No Interruption...");sleep(2);}}void change(){static int cnt=0;cnt=cnt+1;signal(SIGINT,change);printf("\n %d Time Interrupted...",cnt);if(cnt==3)signal(SIGINT,SIG_DFL);}

Page 50: Shell Programming

Output:

[dha@localhost ~]$ cc signal.c [dha@localhost ~]$./a.out signal.c

No Interruption... No Interruption... No Interruption... 1 Time Interrupted... No Interruption... No Interruption... No Interruption... 2 Time Interrupted... No Interruption... No Interruption... No Interruption... 3 Time Interrupted... No Interruption...

Result:

Thus the program for Signal Handling is executed and verified.