0% found this document useful (0 votes)
30 views

Systems Programming

The document contains 5 programming assignments involving shell scripting. Assignment 1 has students write a script to determine if a number is prime interactively or via command line arguments. Assignment 2 involves counting lines, words, and characters in a file interactively or via arguments. Assignment 3 generates a multiplication table interactively, via arguments, or file redirection. Assignment 4 uses nested if-else statements to compare 3 numbers. Assignment 5 reads all txt files in a directory and merges their contents into a new output file.

Uploaded by

anjali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
30 views

Systems Programming

The document contains 5 programming assignments involving shell scripting. Assignment 1 has students write a script to determine if a number is prime interactively or via command line arguments. Assignment 2 involves counting lines, words, and characters in a file interactively or via arguments. Assignment 3 generates a multiplication table interactively, via arguments, or file redirection. Assignment 4 uses nested if-else statements to compare 3 numbers. Assignment 5 reads all txt files in a directory and merges their contents into a new output file.

Uploaded by

anjali
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as RTF, PDF, TXT or read online on Scribd
You are on page 1/ 9

SP ASSIGNMENT

1. Write a shell script to determine whether a given number is a prime number or not.

a) Interactively.

b) By command line arguments.

Solution:

a) Interactively

#!/bin/bash

echo -e "Enter Number : \c"

read n

for((i=2; i<=$n/2; i++))

do

ans=$(( n%i ))

if [ $ans -eq 0 ]

then

echo "$n is not a prime number."

exit 0

fi

done

echo "$n is a prime number."

b) Command line argument: 1 4

Output:

1 is prime number.
4 is not a prime number.

2.Write a shell script which counts the number of lines and number of words present in a given file.

a) Interactive version

b) Command Line arguments version

solution:

a) Interactive version

echo Enter the filename

read file

w=`cat $file | wc -w`

c=`cat $file | wc -c`

l=`grep -c "." $file`

echo Number of characters in $file is $c

echo Number of words in $file is $w

echo Number of lines in $file is $l


b) Command line argument: File1

Output:

File1 has been created.

After executing the codes it will ask to enter filename.

Our filename is File1.

File1 will shows the number of characters, words and lines.


3. Write a shell script to generate a multiplication table.

a) Interactive version: The program should accept an integer n given by the user and should print the
multiplication table of that n.

b) Command line arguments version: The program should take the value of n from the arguments
followed by the command.

c) Redirection version: The value of n must be taken from a file using input redirection.

solution:

a)

clear

echo "which number to generate multiplication table"

read number

i=1

while [ $i -le 10 ]

do

echo " $number * $i =`expr $number \* $i ` "

i=`expr $i + 1`

done
b)Command line arguments : 7 8

output:

4. Write a shell script using nested if-else with comparison operators of your own and explain each
statement of that script.

Solution:

#!/bin/bash

echo -n "Enter the first number: "

read VAR1

echo -n "Enter the second number: "

read VAR2

echo -n "Enter the third number: "

read VAR3

if [[ $VAR1 -ge $VAR2 ]]


then

if [[ $VAR1 -ge $VAR3 ]]

then

echo "$VAR1 is the largest number."

else

echo "$VAR3 is the largest number."

fi

else

if [[ $VAR2 -ge $VAR3 ]]

then

echo "$VAR2 is the largest number."

else

echo "$VAR3 is the largest number."

fi

fi

Command line Argument: 10 20 30

Output:
5.Write a program to read all txt files (that is files that ends with .txt) in the current directory and
merge them all to one txt file and returns a file descriptor for the new file.

Solution:

#include <stdio.h>

#include <stdlib.h>

int main()

// Open two files to be merged

FILE *fp1 = fopen("file1.txt", "r");

FILE *fp2 = fopen("file2.txt", "r");

// Open file to store the result


FILE *fp3 = fopen("file3.txt", "w");

char c;

if (fp1 == NULL || fp2 == NULL || fp3 == NULL)

puts("Could not open files");

exit(0);

// Copy contents of first file to file3.txt

while ((c = fgetc(fp1)) != EOF)

fputc(c, fp3);

// Copy contents of second file to file3.txt

while ((c = fgetc(fp2)) != EOF)

fputc(c, fp3);

printf("Merged file1.txt and file2.txt into file3.txt");

fclose(fp1);

fclose(fp2);

fclose(fp3);

return 0;

Output:

Merged file1.txt and file2.txt into file3.txt

Finish...

You might also like