0% found this document useful (0 votes)
195 views17 pages

Shell-Script 06042017 050954AM

The document provides examples of shell scripts for Unix/Linux systems. It includes 12 scripts that perform tasks like: 1) Executing commands passed as arguments 2) Building a basic calculator 3) Printing pyramid structures 4) Finding the largest of three numbers 5) Calculating factorials 6) Finding prime numbers 7) Reversing digits of a number 8) Generating Fibonacci sequences 9) Checking if a number is perfect 10) Listing files with read/write/execute permissions 11) Deleting empty files 12) Checking if a string is a palindrome The scripts demonstrate common programming constructs in shell like conditionals, loops, user input, string manipulation and file
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
195 views17 pages

Shell-Script 06042017 050954AM

The document provides examples of shell scripts for Unix/Linux systems. It includes 12 scripts that perform tasks like: 1) Executing commands passed as arguments 2) Building a basic calculator 3) Printing pyramid structures 4) Finding the largest of three numbers 5) Calculating factorials 6) Finding prime numbers 7) Reversing digits of a number 8) Generating Fibonacci sequences 9) Checking if a number is perfect 10) Listing files with read/write/execute permissions 11) Deleting empty files 12) Checking if a string is a palindrome The scripts demonstrate common programming constructs in shell like conditionals, loops, user input, string manipulation and file
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

2140702 – Operating System

Unix shell scripts

1) Write a shell script to scans the name of the command and executes it.
Program :-
echo "enter command name"
read cmd
$cmd

Output :-
enter command name
cal
February 2016
Su Mo Tu We Th Fr Sa
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29

2) Write a shell script Which works like calculator and performs below operations Addition
, Subtract ,Division ,Multiplication
Program :-
i) using if..elif statement
echo " Enter one no."
read n1
echo "Enter second no."
read n2

echo "1.Addition"
echo "2.Subtraction"
echo "3.Multiplication"
echo "4.Division"
echo "Enter your choice"
read ch
if [ $ch = "1" ]
then
sum=`expr $n1 + $n2`
echo "Sum ="$sum
elif [ $ch = "2" ]
then
sum=`expr $n1 - $n2`
echo "Sub = "$sum
elif [ $ch = "3" ]

[Asst. Prof. Umesh H. Thoriya] Page 1


2140702 – Operating System
Unix shell scripts

then
sum=`expr $n1 \* $n2`
echo "Mul = "$sum
elif [ $ch = "4" ]
then
sum=`expr $n1 / $n2`
echo "Div = "$sum
fi

Output :-
Enter one no.
32
Enter second no.
12
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
2
Sub = 20

ii) using while loop and switch statement


i="y"
while [ $i = "y" ]
do
echo " Enter one no."
read n1
echo "Enter second no."
read n2
echo "1.Addition"
echo "2.Subtraction"
echo "3.Multiplication"
echo "4.Division"
echo "Enter your choice"
read ch
case $ch in
1)sum=`expr $n1 + $n2`
echo "Sum ="$sum;;
2)sum=`expr $n1 - $n2`
echo "Sub = "$sum;;
3)sum=`expr $n1 \* $n2`
[Asst. Prof. Umesh H. Thoriya] Page 2
2140702 – Operating System
Unix shell scripts

echo "Mul = "$sum;;


4)sum=`expr $n1 / $n2`
echo "Div = "$sum;;
*)echo "Invalid choice";;
esac
echo "Do u want to continue ? y/n"
read i
if [ $i != "y" ]
then
exit
fi
done

Output :-
Enter one no.
32
Enter second no.
22
1.Addition
2.Subtraction
3.Multiplication
4.Division
Enter your choice
2
Sub = 10
Do u want to continue ? y/n
N

3) Write a shell script to print the pyramid structure for the given number.
Program :-
echo "enter the number"
read n
printf "\n"
for((i=1;i<=$n;i++))
do
for((j=1;j<=$i;j++))
do
printf "$j"
done
printf "\n"
done

[Asst. Prof. Umesh H. Thoriya] Page 3


2140702 – Operating System
Unix shell scripts

Output :-
enter the number
4
1
12
123
1234

4) Write a shell script to find the largest among the 3 given numbers.
Program :-
clear
echo "Enter first number: "
read a
echo "Enter second number: "
read b
echo "Enter third number: "
read c

if [ $a -ge $b -a $a -ge $c ]
then
echo "$a is largest integer"
elif [ $b -ge $a -a $b -ge $c ]
then
echo "$b is largest integer"
elif [ $c -ge $a -a $c -ge $b ]
then
echo "$c is largest integer"
fi

Output :-
Enter first number:
22
Enter second number:
33
Enter third number:
42
44 is largest integer

5) Write a shell script to find factorial of given number n.


Program :-
clear
fact=1
[Asst. Prof. Umesh H. Thoriya] Page 4
2140702 – Operating System
Unix shell scripts

echo "Enter number to find factorial : "


read n
a=$n
#if enter value less than 0
if [ $n -le 0 ]
then
echo "invalid number"
exit
fi
#factorial logic
while [ $n -ge 1 ]
do
fact=`expr $fact \* $n`
n=`expr $n - 1`
done
echo "Factorial for $a is $fact"

Output :-
Enter number to find factorial :
5
Factorial for 5 is 120

6) Write a shell script to print all prime numbers from 1 to n.


Program :-
clear
echo "enter the range"
read n
echo "the prime no are:"
m=2
while [ $m -le $n ]
do
i=2
flag=0
while [ $i -le `expr $m / 2` ]
do
if [ `expr $m % $i` -eq 0 ]
then
flag=1
break
fi
i=`expr $i + 1`
done
[Asst. Prof. Umesh H. Thoriya] Page 5
2140702 – Operating System
Unix shell scripts

if [ $flag -eq 0 ]
then
echo $m
fi
m=`expr $m + 1`
done

Output :-
enter the range
10
the prime no are
2
3
5
7

7) Write a shell script toreverse a number supplied by a user.


Program :-
if [ $# -eq 1 ]
then
if [ $1 -gt 0 ]
then
num=$1
sumi=0
while [ $num -ne 0 ]
do
lnum=`expr $num % 10`
sumi=`expr $sumi \* 10 + $lnum`
num=`expr $num / 10`
done
echo "Reverse of digits is $sumi of $1"
else
echo " Number is less than 0"
fi
else
echo "Insert only one parameter "
fi

Output :-
bash pr81.sh 123
Reverse of digits is 321 of 123

[Asst. Prof. Umesh H. Thoriya] Page 6


2140702 – Operating System
Unix shell scripts

8) Write a shell script to find first n Fibonacci numbers like: 0 1, 1, 2, 3, 5, 13,…


Program :-
clear
echo "How many number of terms to be generated ?"
read n
x=0
y=1
i=2
echo "Fibonacci Series up to $n terms :"
echo "$x"
echo "$y"
while [ $i -lt $n ]
do
i=`expr $i + 1 `
z=`expr $x + $y `
echo "$z"
x=$y
y=$z
done

Output :-
How many number of terms to be generated?
5
Fibonacci Series up to 5 terms :
0
1
1
2
3

9) Write a shell script to check whether the given number is Perfect or not.
Program :-
echo Enter a number
read no
i=1
ans=0
while [ $i -le `expr $no / 2` ]
do
if [ `expr $no % $i` -eq 0 ]
then
ans=`expr $ans + $i`
fi
[Asst. Prof. Umesh H. Thoriya] Page 7
2140702 – Operating System
Unix shell scripts

i=`expr $i + 1`
done
if [ $no -eq $ans ]
then
echo $no is perfect
else
echo $no is NOT perfect
fi

Output :-
Enter a number
6
6 is perfect

Enter a number
10
10 is NOT perfect

10) Write a shell script which displays a list of all files in the current directory to which you
have read, write and execute permissions
Program :-
for File in *
do
if [ -r $File -a -w $File -a -x $File ]
then
echo $File
fi
done

Output :-
Desktop
Documents
Downloads
lab
Music
Pictures
Public
shellscript
Templates
Videos
[Asst. Prof. Umesh H. Thoriya] Page 8
2140702 – Operating System
Unix shell scripts

11) Write a shell script that deletes all the files in the current directory which are 0 bytes in
length.
Program :-
clear
find . -name "*" -size -1k –delete
echo “files deleted”

Output :-
files deleted

12) Write a shell script to check whether the given string is Palindrome or not.
Program :-
clear
echo "Enter the string:"
read str
echo
len=`echo $str | wc -c`
len=`expr $len - 1`
i=1
j=`expr $len / 2`
while test $i -le $j
do
k=`echo $str | cut -c $i`
l=`echo $str | cut -c $len`
if test $k != $l
then
echo "String is not palindrome"
exit
fi
i=`expr $i + 1`
len=`expr $len - 1`
done
echo "String is palindrome"

Output :-
Enter the string:
abba
String is palindrome

Enter the string:


abc
String is not palindrome
[Asst. Prof. Umesh H. Thoriya] Page 9
2140702 – Operating System
Unix shell scripts

13) Write a shell script to display the digits which are in odd position in a given 5 digit
number
Program :-
echo "Enter a 5 digit number"
read num
n=1
while [ $n -le 5 ]
do
a=`echo $num | cut -c $n`
echo $a
n=`expr $n + 2`
done

Output :-
Enter a 5 digit number
12345
1
3
5

14) Write a shell script tocheck given year is leap year or not.
Program :-
clear
echo "enter any year"
read num
if [ `expr $num % 4` -eq 0 ]
then
if [ `expr $num % 100` -eq 0 -a `expr $num % 400` -ne 0 ]
then
echo "Not a leap year"
else
echo "Leap year "
fi
else
echo "Not a leap year"
fi

Output :-
enter any year
2016
Leap year

[Asst. Prof. Umesh H. Thoriya] Page 10


2140702 – Operating System
Unix shell scripts

enter any year


2100
Not a leap year

15) Write a shell script tofind the value of one number raised to the power of another.
Program :-
echo "Input number"
read no
echo "Input power"
read power
counter=0
ans=1
while [ $power -ne $counter ]
do
ans=`echo $ans \* $no | bc`
counter=`echo $counter + 1 | bc`
done
echo "$no power of $power is $ans"
Output :-
Input number
5
Input power
3
5 power of 3 is 125

16) Write a shell script to display the following details in a pay list Pay slip details, House
rent allowance, Dearness allowance, Provident fund. HRA is to be calculated at the rate
of 20% of basic, DA at the rate of 40% of basic and PF at the rate of 10% of basic.
Program :-
i="y"
while [ $i = "y" ]
do
echo "Please enter your Basic:"
read basic
echo "PAY SLIP DETAILS"
echo "1. HOUSE RENT ALLOWANCE"
echo "2. DEARNESS ALLOWANCE"
echo "3. PROVIDENT FUND"
echo "your choice:"
read ch
case $ch in
[Asst. Prof. Umesh H. Thoriya] Page 11
2140702 – Operating System
Unix shell scripts

1) hra=`expr $basic \* 20 / 100`


echo Your HOUSE RENT ALLOWANCE is Rs. $hra;;
2) da=`expr $basic \* 40 / 100`
echo Your DEARNESS ALLOWANCE is Rs. $da;;
3) pf=`expr $basic \* 10 / 100`
echo Your PPOVIDENT FUND is Rs. $pf;;
*) echo "Not a valid choice";;
esac
echo "Do u want to continue ?"
read i
if [ $i != "y" ]
then
exit
fi
done

Output :-
Please enter your Basic:
1000
PAY SLIP DETAILS
1. HOUSE RENT ALLOWANCE
2. DEARNESS ALLOWANCE
3. PROVIDENT FUND
your choice:
1
Your HOUSE RENT ALLOWANCE is Rs. 200
Do u want to continue ?

17) Write a shell script to find sum of digits of a number.


Program :-
clear
echo "enter the number"
read n
sum=0
a=$n
while(($n >0))
do
x=`expr $n % 10`
sum=`expr $sum + $x`
n=`expr $n / 10`
done
echo "the sum of $a is $sum"
[Asst. Prof. Umesh H. Thoriya] Page 12
2140702 – Operating System
Unix shell scripts

Output :-
enter the number
3355
the sum of 3355 is 16

18) Write a shell script that greets the user by saying Good Morning, Good Afternoon, and
Good Evening according to the system time.
Program :-
clear
#hours=`date|cut -c 12-13`
hours=`date +%H`
if [ $hours -le 12 ]
then
echo "Good Morning"
elif [ $hours -le 16 ]
then
echo "Good Afternoon"
elif [ $hours -le 20 ]
then
echo "Good Evening"
else
echo "Good Night"
fi

Output :-
Good Afternoon
19) Write a shell script to generate mark sheet of a student. Take 3 subjects, calculate and
display total marks, percentage and Class obtained by the student.
Program :-
Clear
echo "Enter the five subject marks for the student"
read s1 s2 s3
sum1=`expr $s1 + $s2 + $s3`
echo "Sum of 5 subjects are: " $sum1
per=`expr $sum1 / 3`
echo " Percentage: " $per
if [ $per -ge 60 ]
then
echo "You get Distinction"
elif [ $per -ge 50 ]
then
echo “You get First class―
[Asst. Prof. Umesh H. Thoriya] Page 13
2140702 – Operating System
Unix shell scripts

elif [ $per -ge 40 ]


then
echo "You get Second class"
else
echo "You get Fail"
fi

Output :-
Enter the five subject marks for the student
78 88 92
Sum of 5 subjects are: 258
Percentage: 86
You get Distinction

20) Write a shell script that finds total no. of users and finds out how many of them are
currently logged in.
Program :-
cat /etc/passwd>user.txt
set `wc -l user.txt`
log=`who|wc -l`
echo "There are $1 users in network "
echo "There are $log user loged in right now"
Output :-
There are 49 users in network
There are 2 user loged in right now
21) Write a shell script which checks whether a given user is valid or not
Program :-
read user
echo
echo "Validating the $user ..."
if [ `grep -c $user /etc/passwd` -eq 0 ]
then
echo
echo "ERROR : PLEASE ENTER A VALID USERNAME."
echo "Exiting ..."
else
echo "Valid user "
fi
Output :-
abc
Validating the abc
PLEASE ENTER A VALID USERNAME.
[Asst. Prof. Umesh H. Thoriya] Page 14
2140702 – Operating System
Unix shell scripts

Exiting ...

22) Write a shell script that check whether the scanned string is found in a file or not.
Display appropriate message.
Program:-
echo "enter file name"
read f
echo "enter string"
read a;
b=`grep $a $f`;
if [ $? -eq 0 ]
then
echo character found ;
fi
Output :-
enter file name
f1.txt
enter string
hello
string found
23) Write a shell script to perform operations like compare strings, concatenate strings, find
length of a string, occurrence of word in a string and reverse a string
Program:-
clear
i="y"
a=0
t=0
while [ $i = "y" ]

do
clear
echo "1.Compare 2 strings :"
echo "2.Concatanet string"
echo "3.Find length of string"
echo "4.Occurance of word"
echo "5.Reverse of string"
echo "6.Exit"
echo "Enter your choice"
read ch
case $ch in
1)echo "Enter first String"
read s1
[Asst. Prof. Umesh H. Thoriya] Page 15
2140702 – Operating System
Unix shell scripts

echo "Enter second string "


read s2
if [ $s1 = $s2 ]
then
echo "Two strings are equal "else
echo "Two strings are not equal"
fi;;
2)echo "Enter one string "
read s1
echo "Enter second string "
read s2
echo $s1 $s2;;
3)echo "Enter any String"
read s1
t=`echo $s1|wc -c`
t=`expr $t - 1`
echo "Length of "$s1" is "$t;;
4)echo "Enter any String "
read s1
echo "Enter word u want to find occurance of:"
read c1
t=`echo $s1|wc -c`
t=`expr $t - 1`
echo "length "$t
while [ $t -ne 0 ]
do
temp=`echo $s1|cut -c $t`
temp2=`echo $temp2 $temp`
#echo $temp2
if [ $temp2 = $c1 ]
then
a=`expr $a + 1`
t=`expr $t - 1`
else
t=`expr $t - 1`
fi
done
echo "Occurance of "$c1" is "$a;;
5)echo "Enter any string :"
read s1
t=`echo $s1|wc -c`
t=`expr $t - 1`
[Asst. Prof. Umesh H. Thoriya] Page 16
2140702 – Operating System
Unix shell scripts

echo "length "$t


while [ $t -ne 0 ]
do
temp=`echo $s1|cut -c $t`
echo $temp
temp2=`echo $temp2 $temp`
t=`expr $t - 1`
done
echo $temp2;;
6)exit;;
*)echo "Invalid choice";;
esac
echo "Do u want to continue ?"
read i
if [ $i != "y" ]
then
exit
fi
done
24) Write a Shell Script that Accept filename and displays last modification time if file exists,
otherwise display appropriate message.
Program:-
echo -n "Enter name of the file:"
read filename
if [ -f $filename ]
then
echo 'Last modification time is '`ls -lt $filename | tr -s " " "," | cut -d "," -f7`
else
echo "File not exist"
fi
Output:-
Enter name of the file:
demo.txt
'Last modification time is 08:05

[Asst. Prof. Umesh H. Thoriya] Page 17

You might also like