Shell脚本,获取各种日期[全]
文章目录
- 前言
- 一、日期
- 1、获取前一天
- 2、获取上个月的第一天和最后一天
- 3、日期循环
- 总结
前言
常用shell脚本, 不定时更新
一、日期
1、获取前一天
DATE=$(date -d "-1 day" +"%Y%m%d")
echo "<$DATE>"
<20230707>
2、获取上个月的第一天和最后一天
!/bin/bash
DATE=$(date -d “-1 day” +”%Y%m%d”)
不使用date -d
yy=
date +%Y
mm=date +%m-1|bc
[ $mm -lt 1 ] && {
mm=12; ((yy -= 1)); }
[ $mm -le 9 ] && mm=”0$mm”
DATE=$(date -d “-1 day” +”%Y%m%d”)不使用date -d
yy=
date +%Y
mm=date +%m-1|bc
[ $mm -lt 1 ] && {
mm=12; ((yy -= 1)); }
[ $mm -le 9 ] && mm=”0$mm”
getcal=cal $mm $yy
last_dd=echo $getcal|awk '{print $NF}'
dd1=echo $getcal|awk '{print $10}'
first_dd=”0$dd1”
FirstDay=$yy$mm$first_dd
LastDay=$yy$mm$last_ddecho $FirstDay
echo $LastDay
20230601
20230630
或
获取上个月第一天
first_day=$(date -d “$(date +%Y-%m-01) -1 month” +%Y-%m-%d)
获取上个月最后一天
last_day=$(date -d “$(date +%Y-%m-01) -1 day” +%Y-%m-%d)
echo “上个月第一天:$first_day”
echo “上个月最后一天:$last_day”
这里使用了date命令的-d参数来指定日期,并通过+%Y-%m-%d格式化选项将日期转换为yyyy-mm-dd的格式。首先,我们获取当前月份的第一天,然后减去一个月,得到上个月的第一天。接着,我们再次获取当前月份的第一天,然后减去一天,得到上个月的最后一天。
运行以上代码,你将会得到类似以下输出:
上个月第一天:2022-03-01
上个月最后一天:2022-03-31
3、日期循环
# 这里的例子每天作为循环,并展示当天的前一天
startDate=20230601
endDate=20230630
startSec=`date -d "$startDate" "+%s"`
endSec=`date -d "$endDate" "+%s"`
for((i=$startSec;i<=$endSec;i+=86400))
do
current_day=`date -d "@$i" "+%Y%m%d"`
one_day_ago=`date -d "$current_day yesterday" +%Y%m%d`
echo "current_day:${current_day}, yesterday:${one_day_ago}"
done
current_day:20230601, yesterday:20230531
current_day:20230602, yesterday:20230601
current_day:20230603, yesterday:20230602
current_day:20230604, yesterday:20230603
current_day:20230605, yesterday:20230604
current_day:20230606, yesterday:20230605
current_day:20230607, yesterday:20230606
current_day:20230608, yesterday:20230607
current_day:20230609, yesterday:20230608
current_day:20230610, yesterday:20230609
current_day:20230611, yesterday:20230610
current_day:20230612, yesterday:20230611
current_day:20230613, yesterday:20230612
current_day:20230614, yesterday:20230613
current_day:20230615, yesterday:20230614
current_day:20230616, yesterday:20230615
current_day:20230617, yesterday:20230616
current_day:20230618, yesterday:20230617
current_day:20230619, yesterday:20230618
current_day:20230620, yesterday:20230619
current_day:20230621, yesterday:20230620
current_day:20230622, yesterday:20230621
current_day:20230623, yesterday:20230622
current_day:20230624, yesterday:20230623
current_day:20230625, yesterday:20230624
current_day:20230626, yesterday:20230625
current_day:20230627, yesterday:20230626
current_day:20230628, yesterday:20230627
current_day:20230629, yesterday:20230628
current_day:20230630, yesterday:20230629
总结
如果此篇文章有帮助到您, 希望打大佬们能
关注
、点赞
、收藏
、评论
支持一波,非常感谢大家!
如果有不对的地方请指正!!!
还没有评论,来说两句吧...