
#判断当前的年份是否为闰年
sleapyear()
{
r4=`expr $1 % 4`
r100=`expr $1 % 100`
r400=`expr $1 % 400`
if [ r4 -eq 0 and r100 -ne 0 ]; then
return 1
elif [ r400 -eq 0 ]
then
return 1
else
return 0
fi
}
#获取前一天的日期,在此函数中会调用判断闰年的函数
yesterday()
{
day=`echo "$3 - 1"|bc`
month=$2
year=$1
if [ $day -eq 0 ]; then
month=`echo "$2 - 1"|bc`
isleapyear $1
leap=$
case $month in
0|1|3|5|7|8|10|12 )
day=31;;
4|6|9|11 )
day=30;;
2 )
if [ $leap -eq 1 ]; then
day=29
else
day=28
fi;
esac
if [ $month -eq 0 ]; then
month=12
year=`echo "$1 - 1"|bc`
fi
fi
date=`printf "%s%02s%02s" $year $month $day`
}
#设置传入yesterday函数的参数
set `date +%C%y\ %m\ %d`; YEAR=$1; MONTH=$2; DAY=$3
#调用yesterday,传入三个参数,分别为当前年,当前月,当前日
yesterday $YEAR $MONTH $DAY
echo $date
mkdir "$(date "+%F %T")"
在date命令中%F表示当前日期,%T表示当前时间, $(date "+%F %T")表示执行date "+%F %T"命令,返回其输出的字符串。
如果是获取前一周的日期(当前日期回退一周)可以用这个:
date -d "-7 days" +"%Y-%m-%d"
或者:date -d "-1 weeks" +"%Y-%m-%d"
1,$HOME/getdatesh,内容如下:
#!/bin/bash
DATE=/bin/date
$DATE +"%F %T" >>$HOME/date_loglog
2 $HOME/call_gdsh,内容如下
#!/bin/bash
SH=/bin/sh
${SH} $HOME/getdatesh
以上就是关于shell 中如何获取前一天的日期字符串全部的内容,包括:shell 中如何获取前一天的日期字符串、怎样用shell读取系统时间并建立相应文件夹、shell 如何获取上一周的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)