事实上第一,二行应该声明一下时数值型,可以改为:
declare -i temp1=0
declare -i hour=0

源程序注解如下:

temp1=0
hour=0
min1=`date | cut -c18-19` //date出来的结果截取第18到第19个字符,就是秒数
sleep 1 //等待一秒
min2=`date | cut -c18-19` //再取秒数
i=1
dir='/tmp'
cd $dir //更改目录到/tmp目录下
if [ -d /tmp/report ] //检查/tmp/report目录是否存在
then //如果存在则
rm -f -R report //删除report目录
mkdir report //重建report目录
else //否则(指没有/tmp/report)
mkdir report //建立report 目录
fi //if判断结束
while [ $hour -le 200 ] //循环 当$hour小于等于200
do //以下程序循环体
if [ $temp1 -eq 60 ] //如果 $temp1 等于 60
then //
hour=`expr $hour+1` //$hour1并取整
temp1=0 //$templ赋值0
fi //结束此if判断
if [ $min2 -gt $min1 ] //如果$min2大于$min1
then //
temp1=`expr $min2-$min1` //$min2-$min1取整
else //否则
temp1=`expr $min2 + 60 - $min1`// //$min2+60-$min1取整
fi
if [ -f p4report_ord.txt ] //判断p4report_ord.txt文件是否存在
then
z1=`cat p4report_ord.txt | wc -w`;sleep 1 //读取p4report_ord.txt然后显示其字数,并等待1秒,把结果赋值z1
z2=`cat p4report_ord.txt | wc -w` //再次读取p4report_ord.txt字数,把结果赋值z2
if [ z1 -eq z2 ] //如果z1等于z2,应改为if [ $z1 -eq $z2 ]
then
mv p4report_ord.txt /tmp/report/$i //p4report_ord.txt移动并改名到/tmp/report/$i
min1=`date | cut -c18-19` //取秒数
hour=0 //hour0
echo 'Rename PZ -> \ tmp\ report\ ' $i //显示把这个改名为哪个文件
i=`expr $i + 1` //$i1取整
fi
fi
sleep 1 等待1
min2=`date | cut -c18-19` 取秒数
done //循环结束