我今天遇到这样一个问题,需要获取两个日期之间的日期列表。网上搜索了一下,得到了两个Shell小脚本:
脚本一:
-
#!/bin/bash
- #
- startdate="$1"
- date1=$(date -d "$1" "+%s")
- date2=$(date -d "$2" "+%s")
- date_count=$(echo "$date2 - $date1"|bc)
- day_m=$(echo "$date_count"/86400|bc)
- for ((sdate=0;sdate<"$day_m";sdate++))
- do
- echo $(date -d "$startdate $sdate days" "+%F")
- done
我们传递两个日期参数,例如20111220,20121013,脚本会打印这两个日期之间的日期列表。
上述脚本来自http://blog.datatalk.cn/blog/2011/12/27/shell-%E6%97%A5%E6%9C%9F%E5%88%97%E8%A1%A8/,作者贾忠意。
脚本二:
-
#!/bin/bash
- #
- count=365
- while [[ $count -ge 0 ]]
- do
- date +"%Y%m%d" -d"$count day ago"
- count=$(($count-1))
- done
这个脚本打印一年前直到今天的日期列表。
上述脚本来自http://biancheng.dnbcw.info/shell/237075.html,作者轶名。
转载于:https://blog.51cto.com/share/763181