有一个需求,根据输入的时间段,在这个时间段中的是月末的日期执行脚本

解决如下:

#!/bin/bash
if [ -z $1 ]
then
echo "请输入年月日8位开始日期"
exit $E_MISSING_POS_PARAM
fi

if [ -z $2 ]
then
echo "请输入年月日8位结束日期"
exit $E_MISSING_POS_PARAM
fi

if [ $1 -gt $2 ]
then
echo "后面的日期需大于前面的日期"
exit $E_MISSING_POS_PARAM
fi

datebeg=$1
dateend=$2

set -e

beg_s=` date -d "$datebeg" +%s`
end_s=` date -d "$dateend" +%s`
while((end_s>=beg_s))
do
    incdate=`date -d @$beg_s +%Y%m%d`
    y=`date -d ''$incdate' 0 days'  +%Y`
    m=`date -d ''$incdate' 0 days'  +%m`
    d=`date -d ''$incdate' 0 days'  +%d`
    if [ $(date -d ''$incdate' 0 days'  +%d) -eq $(cal $m $y |xargs|awk '{print $NF}') ]  
       then  
          echo "是月底,执行该天:$incdate"
          #请属于需要执行的命令

else
          echo "不是月底,跳过该天:$incdate"
    fi
((beg_s+=86400))
done

运行脚本:

[root@master]# sh lastday.sh 20190620 20190801
不是月底,跳过该天:20190620
不是月底,跳过该天:20190621
不是月底,跳过该天:20190622
不是月底,跳过该天:20190623
不是月底,跳过该天:20190624
不是月底,跳过该天:20190625
不是月底,跳过该天:20190626
不是月底,跳过该天:20190627
不是月底,跳过该天:20190628
不是月底,跳过该天:20190629
是月底,执行该天:20190630
不是月底,跳过该天:20190701
不是月底,跳过该天:20190702
不是月底,跳过该天:20190703
不是月底,跳过该天:20190704
不是月底,跳过该天:20190705
不是月底,跳过该天:20190706
不是月底,跳过该天:20190707
不是月底,跳过该天:20190708
不是月底,跳过该天:20190709
不是月底,跳过该天:20190710
不是月底,跳过该天:20190711
不是月底,跳过该天:20190712
不是月底,跳过该天:20190713
不是月底,跳过该天:20190714
不是月底,跳过该天:20190715
不是月底,跳过该天:20190716
不是月底,跳过该天:20190717
不是月底,跳过该天:20190718
不是月底,跳过该天:20190719
不是月底,跳过该天:20190720
不是月底,跳过该天:20190721
不是月底,跳过该天:20190722
不是月底,跳过该天:20190723
不是月底,跳过该天:20190724
不是月底,跳过该天:20190725
不是月底,跳过该天:20190726
不是月底,跳过该天:20190727
不是月底,跳过该天:20190728
不是月底,跳过该天:20190729
不是月底,跳过该天:20190730
是月底,执行该天:20190731
不是月底,跳过该天:20190801

注释:只需要在输入你需要执行的命令即可。

shell 判断月末日期的更多相关文章

  1. shell判断文件是否存在

    转自:http://www.cnblogs.com/sunyubo/archive/2011/10/17/2282047.html 1. shell判断文件,目录是否存在或者具有权限 2. #!/bi ...

  2. linux中用shell获取时间,日期

    linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...

  3. Linux shell判断文件和文件夹是否存在

    shell判断文件,目录是否存在或者具有权限 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/acc ...

  4. shell 判断字符串是否为数字

    本篇文章主要介绍了"shell 判断字符串是否为数字",主要涉及到shell 判断字符串是否为数字方面的内容,对于shell 判断字符串是否为数字感兴趣的同学可以参考一下. #!/ ...

  5. shell判断条件是否存在

    1. shell判断文件,目录是否存在或者具有权限 2. #!/bin/sh 3. 4. myPath="/var/log/httpd/" 5. myFile="/var ...

  6. shell 判断文件、目录是否存在

    shell判断文件是否存在   1. shell判断文件,目录是否存在或者具有权限 2. #!/bin/sh 3. 4. myPath="/var/log/httpd/" 5. m ...

  7. Javascript Date 判断输入日期是否正确

    JavaScript的Date对象有容错性,可将随意给定的日期的年月日自动生成正确的日期时间 //JavaScript中Date对象容错性 function dateCheck(){ var date ...

  8. Shell 判断文件或文件夹是否存在

    #shell判断文件夹是否存在 #如果文件夹不存在,创建文件夹 if [ ! -d "/myfolder" ]; then mkdir /myfolder fi #shell判断文 ...

  9. [转] Linux shell判断文件和文件夹是否存在

    shell判断文件,目录是否存在或者具有权限 #!/bin/sh myPath="/var/log/httpd/" myFile="/var /log/httpd/acc ...

随机推荐

  1. 【leetcode_easy】557. Reverse Words in a String III

    problem 557. Reverse Words in a String III solution1:字符流处理类istringstream. class Solution { public: s ...

  2. Docker Java程序镜像制作

    Docker Java程序镜像制作 制作前的准备 jre:不需要完整的jdk,jre即可,到Oracle进行下载即可,下载链接,根据自己的情况进行选择,这里选择jre-8u221-linux-x64. ...

  3. 10-2 分区管理和RAID

    分区管理和RAID 处理交换文件和分区 swap交换分区是系统RAM的补充,swap 分区支持虚拟内存.当没有足够的 RAM 保存系统处理的数据时会将数据写入 swap 分区 当系统缺乏 swap 空 ...

  4. 《剑指offer》Q13-18 (牛客10.13)

    目录 Q13 调整数组顺序使奇数位于偶数前 Q14 链表中倒数第k个结点 Q15 反转链表 Q16 合并两个有序链表 Q17 树的子结构 Q18 二叉树的镜像 Q13 调整数组顺序使奇数位于偶数前 输 ...

  5. 在linux服务器以及客户端实现公钥免密登录

    每次登录服务器都要输入密码,这点比较麻烦.使用ssh公钥登录机制可以直接登录,避免每次都输入密码的烦恼. 所谓ssh公钥登录机制即是:客户端电脑client产生加密用的公钥id_rsa.pub与私钥i ...

  6. WIN10家庭版添加"本地安全策略"

    新建文本文件 输入一下命令 @echo off pushd "%~dp0" dir /b C:\Windows\servicing\Packages\Microsoft-Windo ...

  7. 在Ubuntu里搭建spark环境

    注意:1.搭建环境:Ubuntu64位,Linux(也有Windows的,我还没空试)       2.一般的配置jdk.Scala等的路径环境是在/etc/profile里配置的,我自己搭建的时候发 ...

  8. ES6 var,const , let三者区别

    每天学一点,知识涨一张 var 默认是会变量提升的,变量可以修改: let 定义变量,变量可以修: const 定义必须有常量值,const的值一但写上不可更改:let 与const相同之处:1> ...

  9. c++学习笔记_5

    前言:本笔记所对应的课程为中国大学mooc中北京大学的程序设计与算法(三)C++面向对象程序设计,主要供自己复习使用,且本笔记建立在会使用c和java的基础上,只针对与c和java的不同来写 继承 继 ...

  10. vue用echarts 画3d地球 且画线

    页面效果如下: 项目结构如下: 引入的包 "dependencies": { "core-js": "^3.3.2", "regi ...