shell脚本获得当前日期前一天的日期

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值