我今天遇到这样一个问题,需要获取两个日期之间的日期列表。网上搜索了一下,得到了两个Shell小脚本:

脚本一:
 
  
  1. #!/bin/bash 
  2. startdate="$1" 
  3. date1=$(date -d "$1" "+%s") 
  4. date2=$(date -d "$2" "+%s") 
  5. date_count=$(echo "$date2 - $date1"|bc) 
  6. day_m=$(echo "$date_count"/86400|bc) 
  7. for ((sdate=0;sdate<"$day_m";sdate++)) 
  8. do 
  9.         echo $(date -d "$startdate $sdate days" "+%F") 
  10. done 
我们传递两个日期参数,例如20111220,20121013,脚本会打印这两个日期之间的日期列表。
上述脚本来自http://blog.datatalk.cn/blog/2011/12/27/shell-%E6%97%A5%E6%9C%9F%E5%88%97%E8%A1%A8/,作者贾忠意。
 
脚本二:
 
  
  1. #!/bin/bash 
  2. count=365 
  3. while [[ $count -ge 0 ]] 
  4. do 
  5.  date +"%Y%m%d" -d"$count day ago" 
  6.  count=$(($count-1)) 
  7. done 
这个脚本打印一年前直到今天的日期列表。
上述脚本来自http://biancheng.dnbcw.info/shell/237075.html,作者轶名。