Linux shell date 按照时间片段进行循环

记得曾经写脚本按照天为单位进行循环,循环的其实日期可以是任何一天,像这样:

 1 START_DAY=$(date -d "$TODAY -1days" +%Y%m%d);
 2
 3 END_DAY=$(date -d "$TODAY -${cycle}days" +%Y%m%d);
 4
 5 for((;$END_DAY<=$START_DAY; END_DAY=$(date -d "$END_DAY +1days" +%Y%m%d)))
 6
 7 do
 8
 9   ...
10
11 done
$TODAY是外界传入的时间参数,比如20141222;
cycle是一个整数,表示希望循环的天数,比如一个月 30。然后再循环的时候对END_DAY每次加一天,加够30次后,循环终止。

现在突然需要按照10分钟的时间片段循环。本以为`date -d "201412021311 +10minutes" +%H:%M`这样的方式可以凑效的,却发现这样写不行。试来试去,写作这样
`date -d "20141202 1311 +10minutes" +%H:%M`才凑效,感觉这样很奇葩。。。

改造了一下,只在一天内进行循环
 1 startpoint=0000;
 2 endpoint=0010;
 3
 4 for((i=1;i<=144;i++))
 5 do
 6 startpoint_format=`date -d "$startpoint" +%H:%M;`
 7 endpoint_format=`date -d "$endpoint" +%H:%M;`
 8 ...
 9 startpoint=`date -d "$startpoint +10minutes" +%H%M;`
10 endpoint=`date -d "$endpoint +10minutes" +%H%M;`
11 done

这样看来还不错:)

还可以按照时间戳增减来做循环,没有这个看着舒心:)

时间: 2024-11-05 12:26:10

Linux shell date 按照时间片段进行循环的相关文章

linux在shell date获取时间的相关操作

获得当天的日期 date +%Y-%m-%d 输出: 2011-07-28 将当前日期赋值给DATE变量DATE=$(date +%Y%m%d) 有时候我们需要使用今天之前或者往后的日期,这时可以使用date的 -d参数 获取明天的日期 date -d next-day +%Y%m%d 获取昨天的日期 date -d last-day +%Y%m%d 获取上个月的年和月 date -d last-month +%Y%m 获取下个月的年和月date -d next-month +%Y%m 获取明年

Linux shell 流程控制(条件if,循环for,while)

Linux shell 流程控制(条件if,循环[for,while],选择[case]语句实例 linux shell有一套自己的流程控制语句,其中包括条件语句(if),循环语句(for,while),选择语句(case).下面我将通过例子介绍下,各个语句使用方法. 一.shell条件语句(if用法) if语句结构[if/then/elif/else/fi] if 条件测试语句 then action [elif 条件 action else action ] fi 如果对于:条件测试语句不是

linux shell date 用当天时间做备份文件名

#!/bin/bash #date  显示时间,我们可以用时间的不同做为备份文件的名字,这样以前的备份就不会被覆盖 datename=$(date +%Y%m%d-%H%M%S)             #定义时间变量名和显示时间格式 mkdir /tmp/back/$datename                   #创建与时间相对应的文件 cp -a -R  /tmp/datea /tmp/back/$datename/   #把要备份的文件复制到上面创建的文件夹内 原文地址:https

linux shell date 时间运算以及时间差计算方法

最近一段时间,在处理Shell 脚本时候,遇到时间的处理问题. 时间的加减,以及时间差的计算. 获取当前时间戳 date +%s 1. 时间加减 这里处理方法,是将基础的时间转变为时间戳,然后,需要增加或者改变时间,变成 秒. 如:1990-01-01 01:01:01 加上 1小时 20分 处理方法: a.将基础时间转为时间戳 time1=$(date +%s -d '1990-01-01 01:01:01') echo $time1 631126861 [时间戳] b.将增加时间变成秒 [[

linux用date更改时间还原

这几天发现公司服务器上的时间比现实时间快了一天,可能导致一些不可逆转问题,比如网站积分会受影响,日志问题.用date修改下结果出现了立刻还原的故障问题,想写入硬件时间,但是hwclock –rw命令又有问题,具体操作如下: [[email protected] ~]# date Tue Sep  8 19:39:49 HKT 2015 [[email protected] ~]# date  090811392015 Tue Sep  8 11:39:00 HKT 2015 [[email pr

linux中date显示时间和日期与hwclock时间同步

1.date显示系统时间,日期 date +"%Y-%m-%d %H:%M:%S" 2015-07-02 14:32:15 date %Y 四位格式打印年份 date %y 二位格式打印年份 date %m 月 date %d 日 date %H 小时 date %M 分钟 data %S 秒 2.使用前一天时间 date -d "-1 day" +%d 使用前一小时 date -d "-1 hour" +%H 使用前一分钟 date -d &q

Linux shell 编程(八):循环结构

循环语句 在shell中的循环语句如下: for while unitl case select for/while/unitl 必须以done结尾 for循环 for循环用来遍历数组(数据列表)或执行计算语句. 在shell中 for循环有两种形式 第一种用来遍历word序列的数据 word可以是以空格分隔的单词,数组变量或是数字区间/字母区间.示例: 循环次数为数据序列的个数,每一次循环时会把变量i赋值为本次循环到的数据,可以用在循环体中访问变量i. 第二种,示例: 在上面的循环中,expr

Linux | shell脚本-条件判断if和循环语句for

一.简介 上个章节中,我们学习了判断语句和运算语句.shell脚本中,这些判断语句一般都是和if.else.elif.for和while等语句一起使用. 在脚本编写中,条件判断语句常常用于多种情况的判断,符合哪一种情况就执行哪一种的命令. 二.shell条件判断语句:if 1.流程控制:if单分支结构 语法: if 条件判断:then 条件判断成功时执行的操作 ... fi 例子: 结合整数值比较-eq:检查主机是否在线 vim test1.sh运行结果:2.流程控制:if双分支结构 语法: i

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu