当前位置: 技术问答>linux和unix
shell脚本里,如何获得当前时间的前1天或者前1个月的时间?
来源: 互联网 发布时间:2015-09-02
本文导语: 如上 | linux里比较简单。date --date="1 day ago"以及date --date="1 month ago" | 这个是求上一天的SHELL CurYear=`date +%Y` CurMonth=`date +%m` CurDay=`date +%d` GetYear="$CurYear" GetMonth="$CurMonth" GetDay="`expr...
如上
|
linux里比较简单。date --date="1 day ago"以及date --date="1 month ago"
|
这个是求上一天的SHELL
CurYear=`date +%Y`
CurMonth=`date +%m`
CurDay=`date +%d`
GetYear="$CurYear"
GetMonth="$CurMonth"
GetDay="`expr $CurDay - 1`"
if [ "$GetDay" -le 0 ] ; then
GetMonth=`expr $CurMonth - 1`
if [ "$GetMonth" -le 0 ] ; then
GetYear=`expr $CurYear - 1`
GetMonth=12
fi
case "$GetMonth"
in
1|3|5|7|8|10|12)
GetDay=31;;
4|6|9|11)
GetDay=30;;
2)
if [ `expr "$CurYear" % 400` -eq 0 ] ; then
GetDay=29
elif [ `expr "$CurYear" % 4` -eq 0 -a `expr "$CurYear" % 100` -ne 0 ] ; then
GetDay=29
else
GetDay=28
fi
esac
fi
if [ `echo "$GetMonth" | wc -m` -ne 3 ] ; then
GetMonth=0$GetMonth
fi
if [ `echo "$GetDay" | wc -m` -ne 3 ] ; then
GetDay=0$GetDay
fi
echo
echo $GetYear/$GetMonth/$GetDay
echo