#!/bin/sh
#today=`date +%Y%m%d`
#todayHyphen=`date +%Y-%m-%d`
year=`date +%Y`
month=`date +%m`
day=`date +%d`
getYesterday()
{
#to int
month=`expr $month + 0`
day=`expr $day - 1`
if [ $day -eq 0 ]; then
month=`expr $month - 1`
if [ $month -eq 0 ]; then
month=12
day=31
year=`expr $year - 1`
else
case $month in
1|3|5|7|8|10|12) day=31;;
4|6|9|11) day=30;;
2)
if ( [ `expr $year % 4` -eq 0 ] && [ `expr $year % 100` -ne 0 ] || [ `expr $year % 400` -eq 0 ] ) ; then
day=29
else
day=28
fi
;;
esac
fi
fi
#format
if [ $day -lt 10 ] ; then
day='0'$day;
fi
if [ $month -lt 10 ] ; then
month='0'$month;
fi
yesterday=$year$month$day
yesterdayHyphen=$year-$month-$day
#$1 param1
#echo $year$1$month$1$day (方法返回值)
}
#直接调用方法,不用返回值,在方法内设置多个变量,在外面可以用到。
#多次调用,year、month、day的值会变
getYesterday;
echo $yesterday
echo $yesterdayHyphen
#调用方法获取返回值的方式,方法内声明的变量,在外面看不到
#多次调用,year、month、day的值也不会变
yesterday=$(getYesterday '');
yesterdayHyphen=$(getYesterday '-');
echo $yesterday
echo $yesterdayHyphen
建议采用,第一种方法,方便。
参考:
AIX 环境下取得昨天日期的 Shell
http://blog.youkuaiyun.com/chenlmyy/article/details/52935795
Unix获取前一天日期(Linux不知道可以不以)
http://blog.itpub.net/24237320/viewspace-1852395/

本文介绍了一种使用Shell脚本获取系统当前日期及前一天日期的方法,并提供了详细的脚本实现。该脚本能够准确地计算出昨天的日期,包括考虑不同月份及闰年的情况。
4110

被折叠的 条评论
为什么被折叠?



