博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写脚本时以年月日为目录时值得注意的地方
阅读量:7049 次
发布时间:2019-06-28

本文共 959 字,大约阅读时间需要 3 分钟。

在写脚本中 按年月日建立目录时要注意的写法,有的人可能会使用这样的写法:

YEAR=` +%Y`

MONTH=` +%m`
DAY=`date -d yesterday +%d`

mkdir -p /tmp/$YEAR/$MONTH/$DAY

执行效果:

[root@elain ~#]bash -x aa.sh
++ date +%Y
+ YEAR=2011
++ date +%m
+ MONTH=08
++ date -d yesterday +%d
+ DAY=31             
+ mkdir -p /tmp/2011/08/31
[root@elain ~#]ll /tmp/2011/08/31/
总计 0

从效果看似乎 没什么问题,但到月末就会发现,会出现问题的,比如想要在2011/08/01这一天执行这个脚本,创建 2011/07/31这个目录 ,会发现它创建的目录成了 2011/08/31  这样一来,可能会导致脚本中的其它执行全部错误,关于数据的一些操作,这样就会很危险的。

为了避免出现这种情况,我们应该在写脚本时,像这种创建以年月日为目录,且在当天创建以昨天为日期的目录的脚本里,应特别注意,在这里我给出一种方法,其实也很简单,

DAY=`date -d yesterday +/%Y/%m/%d`    # or  `date -d '-1 day' +/%Y/%m/%d`

mkdir -p /tmp/$DAY

执行效果:

[root@elain ~#]bash -x aa.sh
++ date -d yesterday +/%Y/%m/%d
+ DAY=/2011/07/31
+ mkdir -p /tmp//2011/07/31
[root@elain ~#]ll /tmp/2011/
总计 4
drwxr-xr-x 3 root root 4096 08-01 13:34 07
[root@elain ~#]ll /tmp/2011/07/31/
总计 0

这样创建,就不会出现如上问题。

转载请注明: 转载自http://www.elain.org

本文链接地址:

本文转自 elain2012 51CTO博客,原文链接:http://blog.51cto.com/elain/628917

你可能感兴趣的文章
dubbo源码解析(二十三)远程调用——Proxy
查看>>
图片无法加载的情况下的优化
查看>>
数据结构与算法 | Leetcode 141:Linked List Cycle
查看>>
推荐给新手的35个好用的Vue开源库
查看>>
简述原型链是什么,有什么用处?若想访问一个对象的原型,应该使用什么方法?...
查看>>
[LeetCode] 675. Cut Off Trees for Golf Event
查看>>
SQLServer之锁简介
查看>>
从点餐小程序说起,谈谈如何从0到1设计一款toB类产品
查看>>
CSS相对定位和绝对定位
查看>>
断开TCP连接
查看>>
我的前端集成测试(一)- 认识node的assert模块
查看>>
【跃迁之路】【465天】程序员高效学习方法论探索系列(实验阶段222-2018.05.16)...
查看>>
spring4.x 集成quartz2.x 集群化配置项目实例
查看>>
Spring Boot 参考指南(开发者工具)
查看>>
慢雾科技和 SegmentFault 达成战略合作
查看>>
TypeScript 2.9
查看>>
Linux 程序包的管理
查看>>
JavaScript 异步、栈、事件循环、任务队列
查看>>
图解 React Virtual DOM
查看>>
Day08 - HTML5 Canvas 实现彩虹画笔绘画板指南
查看>>