yy=`date +%Y` #Year yyyy
mm=`date +%m` #Month mm
dd=`date +%d` #Day dd
#以下三个变量是供测试之用
#yy=2002
#mm=01
#dd=01
echo $yy $dd $mm
if [ $dd = "01" ]
then
lm=`expr $mm - 1 `
if [ $lm -eq 0 ]
then
lm=12
yy=`expr $yy - 1 `
fi
echo lm=$lm
case $lm in
1|3|5|7|8|10|12) Yesterday=31 ;;
4|6|9|11) Yesterday=30 ;;
2)
if [ ` expr $yy % 4 ` -eq 0 -a `expr $yy % 100 ` -ne 0 -o ` expr $yy % 400 ` -eq 0 ]
then Yesterday=29
else Yesterday=28
fi ;;
esac
mm=$lm
echo Yesterday=$Yesterday
echo $mm
else
Yesterday=`expr $dd - 1 `
fi
case $Yesterday
in 1|2|3|4|5|6|7|8|9) Yesterday='0'$Yesterday
esac
case $mm in
1|2|3|4|5|6|7|8|9) mm='0'$mm ;;
esac
Yesterday=$yy$mm$Yesterday
echo '$Yesterday
脚本中需要注意的地方:
1.case语句的执行部分是双分号;;结尾
2.if语句的条件部分‘[’的右边和‘]‘号的左边必须要有空格
3.如果if语句的判断部分和关键字then在一起不换行,则必须要用“;”分号进行分割
测试用例
当前日期 前一天日期
20020301 20020228
20120813 20120812
其他自己可以测试
本人测试环境:hp-ux