# Method 1:

#!/bin/bash

#

# SCRIPT : leapyear.sh

# PURPOSE: Checks whether given year is a leap year or not

# USAGE : sh leapyear.sh

# If Year value not supplied, it takes current year as default

#

# This script based on, One year has the length of 365 days, 5 hours,

# 48 minutes and 47 seconds. Because this is rather non-functional,

# a normal year has been given 365 days and a leap year 366 days.

#####################################################

############### DEFINE FUNCTIONS HERE ####################

#####################################################

Leap()

{

# This function tells you if the argument is a leap year or not...

YEAR=$1

NO_OF_DAYS=$(cal $YEAR |egrep "^[ 0-9][0-9]| [ 0-9][0-9]$" |wc -w)

# A single parameter to cal specifies the year (1 - 9999) to be displayed;

# note the year must be fully specified: “cal 89” will not display a calendar

# for 1989.

# Use egrep or grep -E both are same

# cal command pipes total months and dates to egrep, egrep remove all lines

# not starting with number or ending with number, then pipes remaining lines

# to wc command. wc command counts total number of words(days).

if [[ $NO_OF_DAYS -eq 365 ]]

then

echo "$YEAR Is Not A Leap Year "

else

echo "$YEAR Is A Leap Year"

fi

}

#####################################################

############### MAIN PROGRAM STARTS HERE #################

#####################################################

Year=${1:-$(date +%Y)}

if [ $Year -lt 1 -o $Year -gt 9999 ]

then

echo "Illegal Year Value: Use 1-9999"

exit 1

fi

Leap $Year

# Method 2:

#!/bin/bash

#

# SCRIPT : leapyear.sh

# PURPOSE: Checks whether given year is a leap year or not

# USAGE : sh leapyear.sh

# If Year value not supplied, it takes current year as default

#

# This script based on,A leap year comes every 4 years,

# but not every 100 years, then again every 400 years.

#####################################################

############### ARGUMENTS CHECKING #####################

#####################################################

YEAR=${1:-`date +%Y`}

if [ $YEAR -lt 1 -o $YEAR -gt 9999 ]

then

echo "Illegal Year Value: Use 1-9999"

exit 1

fi

#####################################################

############### DECLARE VARIABLES HERE ###################

#####################################################

rem1=$((YEAR%4))

rem2=$((YEAR%100))

rem3=$((YEAR%400))

#####################################################

############## MAIN PROGRAM STARTS HERE ##################

#####################################################

if [ ${rem3} = "0" ]

then

echo "$YEAR Is A Leap Year"

exit

fi

if [ ${rem2} = "0" -a ${rem3} != "0" ]

then

echo "$YEAR Is Not A Leap Year"

exit

fi

if [ ${rem1} = "0" -a ${rem2} != "0" ]

then

echo "$YEAR Is A Leap Year"

else

echo "$YEAR Is Not A Leap Year"

fi

**OUTPUT:**

[root@localhost shell]# ./leapyear.sh

2009 Is Not A Leap Year

[root@localhost shell]# ./leapyear.sh 2100

2100 Is Not A Leap Year

[root@localhost shell]# ./leapyear.sh 2104

2104 Is A Leap Year

[root@localhost shell]# ./leapyear.sh 21000

Illegal Year Value: Use 1-9999

[root@localhost shell]# ./leapyear.sh 1996

1996 Is A Leap Year

nice work!

ReplyDeletei really very impress with ur way to explain.

is_leap_year() { ## USAGE: is_leap_year [year]

ReplyDeleteily_year=${1:-`date +%Y`}

case $ily_year in

*0[48] |\

*[2468][048] |\

*[13579][26] |\

*[02468][048]00 |\

*[13579][26]00 ) _IS_LEAP_YEAR=1

return 0 ;;

*) _IS_LEAP_YEAR=0

return 1 ;;

esac

}

Print a reverse the number

ReplyDeleteecho "Enter a number"

read n

sd=0

rev=0

while [ $n -gt 0 ]

do

sd=$(( $n % 10 ))

rev=$(( $rev *\ 10 + $sd ))

n=$(( $n / 10 ))

done

echo "Reverse number of entered digit is $rev"

$ vi fibonacci.sh echo “Enter n for Fibonacci series: - “

read n

echo “Fibonacci series is: - “

echo “0”

echo “1”

i=0

j=1

cnt=2

while [ $cnt –le $n ]

do

k=`expr $i + $j`

i= $j

j= $k

echo $k

cnt=`expr $cnt + 1`

done

Run the above script as follows: $ /bin/sh fibonacci.sh

Code:

Output –

Enter n for Fibonacci Series:-

10

Fibonacci Series is:-

0

1

1

2

3

5

8

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

Write a shell program in unix to add two numbers?

#!/bin/sh

echo “Enter the number”

A=5

B=10

C=`echo "$A + $B"|bc -l`

echo "$A + $B = $C"

Or

echo "enter the value of a"

read a

echo "enter the value of b"

read b

c=`expr $a + $b`

echo "the sum of a and b is $c"

shell script for check whether the given no is prime or not??

echo "input any number:"

read no

no=`expr $no`

i=`expr 2`

while [ $i -lt $no ]

do

if [ `expr $no % $i` -eq 0];

then

echo "$no is not a prime no.."

break 2

fi

i=`expr $i +1`

done

if [ $i -eq $no ];

then

echo "$no is a PRIME no..."

fi

factorial of a number in Unix

echo "Total no of factorial wants"

read fact

ans=1

counter=0

while [ $fact -ne $counter ]

do

counter=`expr $counter + 1`

ans=`expr $ans \* $counter`

done

echo "Total of factorial is $ans"

-------------------------------------------------------------------

output

-------------------------------------------------------------------

Total no of factorial wants

5

Total of factorial is 120

Or

clear

i=1

f=1

echo "Enter the n value:"

read n

while [ $i -le $n ]

do

f=`expr $f \* $i`

i=`expr $i + 1`

done

echo "The factorial of $n is":$f

/*-------------------------INPUT/OUTPUT----------

Enter the n value:

6

The factorial of 6 is:720