| Modify
Cal command to accept more than
one month as in:
(i) $ Cal Jan, Feb
(ii) $ Cal Jan-April (from TMA
Jan 2001)
Ans.
i)
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`
ch=`cut -c$n az`
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
cal $m $y
done
ii)
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

|
|