这里有个需求,按月查询,并且要输出每月的开始日期,结束日期。

shell脚本如下:

#!/bin/sh

echo "0个参数时, 按月执行,默认当前月份 "
echo "1个参数时, 按月执行,输入月份格式:2019-02"
echo "2个参数时, 按月执行,输入月份格式:2019-01 2019-02" if [ $# = ]; then
start_month=$
end_month=$
elif [ $# = ]; then
start_month=$
end_month=$
elif [ $# = ]; then
start_month=`date +%Y-%m`
end_month=`date +%Y-%m`
fi start_sec=`date -d "${start_month}-01" +%s`
end_sec=`date -d "${end_month}-01" +%s` while [ $start_sec -le $end_sec ]; do day_curr=`date -d @$start_sec +%Y-%m-%d`
month_curr=`date -d @$start_sec +%Y-%m` start_date=`date -d"${month_curr}-01" "+%Y-%m-01"` #月份开始日期
tmp_dt=`date -d"${month_curr}-01 +1 months" "+%Y-%m-01"`
end_date=`date -d "${tmp_dt} -1 day" "+%Y-%m-%d"` #月份结束日期 echo $month_curr $start_date $end_date
## 这里放要处理的过程
## ## 一次结束重置月份
let start_sec=`date -d "${month_curr}-01 +1 months" +%s` done

默认,不输入参数时,执行结果:

输入指定月份参数时:

输入区间月份时:

这样就完美了。

shell按月循环取数的更多相关文章

  1. 基础练习 回形取数 (循环 + Java 输入输出外挂)

      基础练习 回形取数   时间限制:1.0s   内存限制:512.0MB        问题描述 回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度.一开始位于矩阵左上角,方 ...

  2. Data层相关问题 & JS循环取值

    第一次写博客,里面是自己工作中碰到的问题及总结的知识点,便于自己以后回顾,技术大牛们请直接忽略这篇文章,也希望能帮助到想我这样的小白! Data层相关问题总结: 1. 代码管理用的是 VSS 2005 ...

  3. NOIP200003方格取数

    NOIP200003方格取数 难度级别: D: 编程语言:不限:运行时间限制:1000ms: 运行空间限制:51200KB: 代码长度限制:2000000B 试题描述 XYZ 是首师大附中信息技术团编 ...

  4. shell中for循环总结

    关于shell中的for循环用法很多,一直想总结一下,今天网上看到上一篇关于for循环用法的总结,感觉很全面,所以就转过来研究研究,嘿嘿... 1. for((i=1;i<=10;i++));d ...

  5. shell脚本学习-循环

    跟着RUNOOB网站的教程学习的笔记 for循环 与其他编程语言类似,shell支持for循环. for循环一般格式为: for var in item1 item2 ... itemN do com ...

  6. Excel VBA 从外部工作簿取数的5种方法

    '======================================================= '1.循环单元格取数,效率最低,不可取,初学者易犯 '2.区域相等取数 '3.复制粘贴 ...

  7. 方格取数(dp)

    方格取数 时间限制: 1 Sec  内存限制: 128 MB提交: 9  解决: 4[提交][状态][讨论版][命题人:quanxing] 题目描述 设有N×N的方格图,我们在其中的某些方格中填入正整 ...

  8. 04 shell编程之循环语句

    Shell编程之循环语句 学习目标: 掌握for循环语句编程 掌握while循环语句编程 目录结构: For循环语句 l  读取不同的变量值,以逐个执行同一组命令 l  For语句结构 for 变量名 ...

  9. BW ON HANA 业务模型关系与数据取数

    在接到业务需求之后,我认为重要的是理清楚自己该做什么.来实现业务.由于不了解业务,还是走了很多弯路.本可以不用这么做,还是这么做了.自然你最傻瓜的按照用户的方式去实现是没有问题的. 会使后面的人难以维 ...

随机推荐

  1. chrome DevTools功能介绍

  2. P1600 天天爱跑步[桶+LCA+树上差分]

    题目描述 小c同学认为跑步非常有趣,于是决定制作一款叫做<天天爱跑步>的游戏.<天天爱跑步>是一个养成类游戏,需要玩家每天按时上线,完成打卡任务. 这个游戏的地图可以看作一一棵 ...

  3. Django之路——10 django的分页组件

    Django的分页器(paginator) view from django.shortcuts import render,HttpResponse # Create your views here ...

  4. VS无ADO.NET实体数据模型?

    今天做EF的小例子时,发现需要添加实体数据模型,但是不管怎么找在新建项中都找不到这个选项,这是怎么回事,于是就开始百度吧,有的说可能是VS安装时没有全选,也有的人说可能是重装VS时,没有将注册表清除, ...

  5. Mac下安装SQLmap的安装

    1.cd /usr/bin/ 2.sudo git clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev3.重新打开terminal ...

  6. 通过php安装Imagick扩展给动态gif图片打水印

    通过php安装Imagick扩展给动态gif图片打水印 一直以来php处理图片都是以gd为主流,直到近些年Imagick的使用才渐渐变多. gd通常用来缩放图片,给图片打水印等基本功能,对于复杂效果如 ...

  7. H3CNE学习1 课程简介

    一.认证对比 二.企业网架构

  8. 1.6synchronized代码块

    1.synchronized可以使用任意的Object进行加锁,用法比较灵活 ============================================================= ...

  9. bilibili 高并发实时弹幕系统的实现

    高并发实时弹幕是一种互动的体验.对于互动来说,考虑最多的地方就是:高稳定性.高可用性以及低延迟这三个方面. 高稳定性,为了保证互动的实时性,所以要求连接状态稳定: 高可用性,相当于提供一种备用方案,比 ...

  10. luogu 2592 区间dp

    \(f_{i, j, a, b}\) 表示当前一共有 \(i\) 人排队, \(j\) 名男生,男生数目 - 女生数目为 \(a\), 女生数目 - 男生数目为 \(b\),\(a, b >= ...