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