本文共 1046 字,大约阅读时间需要 3 分钟。
文章来源:
题目:获取昨天的时间
在备份的时候,通常需要备份前天的文件,这些文件是以日期命名的。 date命令可以显示当前时间,如果知道这个,你肯定会想到用脚本来实现,下面的脚本 确实可以获取昨天的日期,而且准确: ################ SHELL TO GET THE DATE OF YESTERDAY ########### month=`date +%m` day=`date +%d` year=`date +%Y` month=`expr $month + 0` day=`expr $day - 1` if [ $day -eq 0 ]; then month=`expr $month - 1` if [ $month -eq 0 ]; then month=12 day=31 year=`expr $year - 1` else case $month in 1|3|5|7|8|10|12) day=31;; 4|6|9|11) day=30;; 2) if [ `expr $year % 4` -eq 0 ]; then if [ `expr $year % 400` -eq 0 ]; then day=29 elif [ `expr $year % 100` -eq 0 ]; then day=28 else day=29 fi else day=28 fi ;; esac fi fi YY=`printf "%04d" $year` MM=`printf "%02d" $month` DD=`printf "%02d" $day` YESTERDAY=$YY$MM$DD ############################## END ############################## 看起来是很好,也学到了不少shell的知识。 但是,如果有新的需求,要你获取两天前 、一周前日期时,你怎么来做呢? 困扰了吧?按这个逻辑下去真不知道如何写这个 shell。 但如果你熟悉了date命令,你会发现,一条简单的shell就可以解决你的问题: date --date="1 days ago" +%Y%m%d 两天前的以此类推 date --date="2 days ago" +%Y%m%d 蓦然回首决定很好笑,不过倒也是尝到了其中的乐趣,有了这样的经历,印象更深刻。 本文来自ChinaUnix博客,如果查看原文请点:转载地址:http://hbgvb.baihongyu.com/