cal

hey everyone. I'm new to UNIX, and I'm having trouble with the cal command. I know that you can display a calendar if you just type in 'cal 3 2005' for example. But how would you do it if you just wanted the calendars displayed to be from March 2005 to June 2005?
Thanks

I have Created a script known as mycal.sh , this is the contents of this script

y=`date '+ %Y' `
echo $1 > file1
tr "a-z" "A-Z" < file1 > az
n=1
ch=`cut -c$n az`

while test "$ch" != "-"
do
f=$f$ch
n=`expr $n + 1`
ch=`cut -c$n az`
done
n=`expr $n + 1`
s=`cut -c$n- az`
for i in $f $s
do
case $i in
JAN) m=1;;
FEB) m=2;;
MAR) m=3;;
APR) m=4;;
MAY) m=5;;
JUN) m=6;;
JUL) m=7;;
AUG) m=8;;
SEP) m=9;;
OCT) m=10;;
NOV) m=11;;
DEC) m=12;;
esac
if [ "$i" = "$f" ]
then
fm=$m
fi
done
if [ $fm -gt $m ]
then
echo "Invalid Range"
fi
while [ $fm -le $m ]
do
cal $fm $y
fm=`expr $fm + 1`
done

save it and run the script by executing this at the command line

sh mycal.sh MAR-JUN

( Likewise you can give as many number of month combination
example
JAN-MAR
MAR-MAY
JAN-DEC ....... etc..

Enjoy

is there just a simple command to do this, instead of typing all that code n stuff? (sorry im really new to unix) :o

About the closest you'll get without writing a script is(and assuming you're using GNU cal) - this will show you the prev/current/next month....

$ cal -3 5 2005
     April 2005             May 2005              June 2005
Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa  Su Mo Tu We Th Fr Sa
                1  2   1  2  3  4  5  6  7            1  2  3  4
 3  4  5  6  7  8  9   8  9 10 11 12 13 14   5  6  7  8  9 10 11
10 11 12 13 14 15 16  15 16 17 18 19 20 21  12 13 14 15 16 17 18
17 18 19 20 21 22 23  22 23 24 25 26 27 28  19 20 21 22 23 24 25
24 25 26 27 28 29 30  29 30 31              26 27 28 29 30

Else; do something like

$ for month in 3 4 5 6; do
>   cal $month 2005
> done
     March 2005
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 30 31

     April 2005
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 30

      May 2005
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 30 31

      June 2005
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 30

Cheers
ZB

Hi

Zazy bob answer was closest & smallest one which i have to agree with

Regards

Victor Vinod Kumar