UNIX下遍历日期,date 没有 -d 的参数,所以需要自己处理。

下面使用时差的方法进行计算,遍历的日期是降序的

#!/usr/bin/ksh
. $HOME/.profile
timelag=
cycle=
begindate=$
enddate=$ Usage()
{
print "Usage: batch_miniestore.sh 开始日期 结束日期"
print " 注意:开始时间 >= 结束时间,使用递减方式遍历"
print " example:batch_miniestore.sh 20171208 20171203"
}
traverse_date()
{
if [ ${begindate} -lt ${enddate} ]; then
print "begindate is:"${begindate}
print "enddate is:"${enddate}
Usage
return
fi
#当前时间
today=`date +%Y%m%d`
print "today is:"${today} #计算当前时间和指定的起始时间的间隔数
flag=$((today-begindate))
print "flag:"${flag} #根据间隔数确定时差的取值
if [ flag -eq ]; then
timelag=
elif [ flag -eq ]; then
timelag=
else
timelag=$((+*(flag-)))
fi curdate=`TZ=aaa${timelag} date +%Y%m%d`
print "start date is:"$curdate #遍历时间:从起始时间依次递减进行遍历
while [ ${curdate} -gt ${enddate} ]
do
#根据时差得到起始的时间
curdate=`TZ=aaa${timelag} date +%Y%m%d`
print "curdate is:"$curdate
timelag=$((timelag+cycle))
done
}
traverse_date

unix 下 shell 遍历指定范围内的日期的更多相关文章

  1. Oracle 生成指定范围内随机日期

    Oracle生成一个指定范围内的随机日期 /* 年1月1日)的整数偏移量来保存(即把日期保存为一个数字); * 因此可通过寻找‘指定日期’与‘关键日期’相对应的整数偏移量,再加一个指定范围内的随机整数 ...

  2. shell查找指定时间段内的文件

    #!/bin/bash#20170905 输入参数格式echo "显示"$1"的备份文件"date_0=$1date_1=`expr $date_0 + 1`d ...

  3. Linux/Unix下Shell快捷键操作集合

    本人收集整理了一些Bash或其他Shell中常用的快捷键,使用技巧以及Ubuntu中一些常用操作的快捷键,希望大家能从中受益,提高工作效率. 使用”!”从历史中执行命令 有时候,我们需要在 Bash ...

  4. Linux下如何遍历指定目录下的所有文件并删除指定天数之前创建的文件

    脚本内容如下: #!/bin/bash function delete_file { days=$[$-] for i in `find $dir -type f -ctime +$days` do ...

  5. shell统计指定范围内的所有质数以及它们的和

    #!bin/bash a= $) ;do n= $x);do ];then n=$[$n+] fi done ];then { echo -n -e "$x\t" sum=$[$s ...

  6. shell生成指定范围内的随机数

    #!/bin/bash read -p "请输入起始数:" min read -p "请输入终止数:" max if [ $min -gt $max ] the ...

  7. random and password 在Linux下生成crypt加密密码的方法,shell 生成指定范围随机数与随机字符串

    openssl rand -hex n (n is number of characters) LANG=c < /dev/urandom tr -dc _A-Z-a-z-0-9 | head ...

  8. Window Linux下实现指定目录内文件变更的监控方法

    转自:http://qbaok.blog.163.com/blog/static/10129265201112302014782/ 对于监控指定目录内文件变更,window 系统提供了两个未公开API ...

  9. OpenCV代码提取:遍历指定目录下指定文件的实现

    前言 OpenCV 3.1之前的版本,在contrib目录下有提供遍历文件的函数,用起来比较方便.但是在最新的OpenCV 3.1版本给去除掉了.为了以后使用方便,这里将OpenCV 2.4.9中相关 ...

随机推荐

  1. tensorflow中使用tf.ConfigProto()配置Session运行参数&&GPU设备指定

    tf.ConfigProto()函数用在创建session的时候,用来对session进行参数配置: config = tf.ConfigProto(allow_soft_placement=True ...

  2. UVA - 11212 Editing a Book (IDA*)

    给你一个长度为n(n<=9)的序列,每次可以将一段连续的子序列剪切到其他地方,问最少多少次操作能将序列变成升序. 本题最大的坑点在于让人很容易想到许多感觉挺正确但实际却不正确的策略来避开一些看似 ...

  3. mysql 多表查询 左联 去重方法

    1.数据库中的两张表: 2.传统左联查询数据结果如下: 3.替换查询语句可得到去重数据结果:

  4. python面向对象-我的理解

    参考:博客 Vamei .廖雪峰 面向对象概念 面向对象完全可以按照自然界生物分类法来理解. 当然,它不会有自然界那么复杂. 因为我专业的关系,因此个人觉得微生物来举例很容易理解. 所有的微生物都具有 ...

  5. POJ3468:A Simple Problem with Integers

    浅谈分块:https://www.cnblogs.com/AKMer/p/10369816.html 题目传送门:http://poj.org/problem?id=3468 分块裸题.对于每个块记录 ...

  6. 基于dubbo的SOA项目改造

    工程改造: 1.原来工程删除掉表现层的模块,将表现层独立出来. 2.将原来的工程改造.将service的打包方式改为改为war. 3.在service模块中添加web.xml文件 4.在web.xml ...

  7. 一根Express Route同时支持ARM和ASM的VNET

    ARM模式的Azure管理模式在China Azure上已经正式落地了.今后在China Azure上应该主要以ARM的模式创建VM了. 并且目前Express Route也已经可以在ARM模式下创建 ...

  8. JVM中存储类信息的三个表格

    摘自:<Java Performance>第三章 Internal Class Loading Data The HotSpot VM maintains three hash table ...

  9. Eclipse一步一步搭建SSM+Maven

          Eclipse 搭建SSM(Spring.Spring MVC .Mybatis)  利用Maven管理Jar包      一般而言,新的eclipse都已经集成了maven,如果没有那么 ...

  10. Qt creator 使用qwt

    .pro中添加 LIBS += -L”C:\Qt\Qt5.3.2\5.3\msvc2013_opengl\lib” -lqwt INCLUDEPATH += "C:\Qt\Qt5.3.2\5 ...