求本月的第一天 和 最后一天:

echo `date --date "$1" +"%Y-%m-01"`

year=`date -d "$1" +"%Y"`

month=`date -d "$1" +"%m"`

last_day=`cal $month $year | xargs | awk '{print $NF}'`

echo $year-$month-$last_day

求 上一个月的 第一天 和 最后一天:

#!/bin/sh

#获取上一个月的 第一天

echo `date --date "1 month ago $1" +"%Y-%m-01"`

但在测试时 发现问题:

[lix@cq01-crm-lin1rd10..com temp]$ echo `date --date "1 month ago 20130302" +"%Y%m"`

201302

[lixia@cq01-crm-.com temp]$ echo `date --date "1 month ago 20130330" +"%Y%m"`

201303

[lixia1@cq01-crm-.com temp]$ echo `date --date "1 month ago 20130329" +"%Y%m"`

201303

[li@cq01-crm-lin1rd10.com temp]$ echo `date --date "1 month ago 20130229" +"%Y%m"`

201301

为何会出现这种诡异现象呢? 因为 20130330的 1 month ago 按说应该是 20130230? 但2月没有30号,故会自动变成 20130301,再求%Y%m 得到201301.

只好换一种解法: 先获取本月的第一天,再减一天,即得到上一个月的 最后一天。再把最后置为01,就得到上一个月的 第一天。

或者 先获取本月的第一天,再1 month ago 也可以得到 上一个月的 第一天。

参考:

http://blog.csdn.net/yifanernei/article/details/5112232

http://www.cnblogs.com/billyxp/archive/2013/01/31/2886733.html

linux shell date 1,linux shell date命令的坑(date 1 month ago 的诡异现象)相关推荐

  1. linux 字符串加入中括号,Linux Shell 基础 -- 总结几种括号、引号的用法

    1.双引号 " " 双引号常用于包含一组字符串,在双引号中,除了 "$".""." ` (反引号)"有特殊含义外,其余字 ...

  2. lolcat :一个在 Linux 终端中输出彩虹特效的命令行工具

    那些相信 Linux 命令行是单调无聊且没有任何乐趣的人们,你们错了,这里有一些有关 Linux 的文章,它们展示着 Linux 是如何的有趣和"淘气" . Linux命令及Lin ...

  3. Linux crontab下关于使用date命令和sudo命令的坑

    Linux crontab下关于使用date命令和sudo命令的坑 想要在root 的crontab里面加一些任务计划,希望以www用户运行命令,并且将输出重定向到某处以当时时间命名的日志文件,大致如 ...

  4. linux新建脚本文件,linux shell脚本编程2—修改文件时间和创建新文件即touch命令的使用...

     在使用ls命令时,每个文件在Linux下面都会记录3个主要的修改时间: modification time(mtime,修改时间):当该文件的"内容数据"更改时,就会更新这个时 ...

  5. linux usleep函数 sleep,LINUX实操:date、sleep和usleep命令

    搜索热词 <LINUX实操:date.sleep和usleep命令>要点: 本文介绍了LINUX实操:date.sleep和usleep命令,希望对您有用.如果有疑问,可以联系我们. 1. ...

  6. Linux 基础操作、常用shell命令、vi常用命令、man帮助手册

    Linux 基础操作.常用shell命令.vi常用命令.man帮助手册 一.简述 记录简单的Linux 基础操作.常用shell命令.vi编辑器常用命令.man帮助手册的使用. 二.Linux 基础操 ...

  7. linux shell编程 ppt,Linux常用命令与Shell基本编程.ppt

    Linux常用命令与Shell基本编程.ppt Shell 脚本基本编程,无线产品部 katanazhang 2009-11-09,课程目标,linux 常用命令 shell 脚本编程 awk 的用法 ...

  8. Linux常用命令(本篇包括,Linux目录结构介绍、Linux Shell介绍、9个常见命令介绍、文件的概念、文件的操作(20个)、目录的操作、文件和目录的权限、文件压缩及解压缩)

    Linux常用命令(本篇包括,Linux目录结构介绍.Linux Shell介绍.9个常见命令介绍.文件的概念.文件的操作(20个).目录的操作.文件和目录的权限.文件压缩及解压缩)         ...

  9. linux 脚本编写基本命令,Linux Shell命令行及脚本编程实例详解

    <Linux典藏大系:Linux Shell命令行及脚本编程实例详解>共15章,分为两篇.主要内容包括:Linux 及Linux Shell简介.初识Linux Shell.常用Shell ...

最新文章

  1. one-hot encoding不是万能的,这些分类变量编码方法你值得拥有
  2. nginx安装包 linux,Linux(CentOS)环境下安装下载Nginx并配置
  3. Pivotal Tuning for Latent-based Editing of Real Images
  4. windows下安装多个tomcat服务
  5. tensorboard ckpt pb 模型的输出节点_PyTorch 1.1.0发布,官方支持TensorBoard,还有更多性能提升!...
  6. 工作的习惯,看到好收藏下
  7. apache commons lang架包介绍
  8. restful是什么
  9. DIV+CSS—菜鸟分享学习心得!导航篇
  10. linux mono运行c 1,不装mono,你的.NET程序照样可以在Linux上运行!
  11. Makefile知识点
  12. google protobuf的简介、安装和使用
  13. ECS Linux 服务器解除ssh登陆后被锁定或暂停输入输出的终端
  14. 重构:改善既有代码的设计 精彩书评二
  15. 【总结】操作系统原理
  16. 带圈圈的数字1~50,求50以上,不要word的
  17. 《重构》——第二次阅读笔记。golang视角
  18. 软件测试-黑盒测试方法(二)---正交实验法、场景图、错误推测法
  19. Steve Hui:云联云是中国云计算的最好切入点(4月刊推荐)
  20. 作业 | 机票预订系统和银行计算机储蓄系统的数据流图及实体图

热门文章

  1. android沉浸式 字体,全面解析android沉浸式状态栏
  2. 两部手机怎样才能把数据都传过来_我把魅族换成荣耀,30G的数据文件该如何一键转移?...
  3. 2019黑马python面试资料_2019最新Python黑马头条推荐系统项目
  4. linux颜色吸取工具,8 个优秀的 Linux 图形图像及色彩工具
  5. java控制io_Java-IO操作
  6. VHDL交通灯控制器的设计
  7. 基于xilinx vivado的XADC IP设置使用详解
  8. android xutils数据库操作,XUtils3.0之本地数据库操作
  9. 科学家利用计算机模型,科学家尝试利用计算机模拟整个宇宙的演化
  10. react 动态修改路由_reactjs – 如何动态添加重定向到反应路由器?