shell-时间处理

浏览: 1611

关于shell的时间问题: 
先看几个小例子

#!/bin/bash
v_date=`date`
echo "${v_date}"

输出当天日期 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d'`
echo "${v_date}"
#!/bin/bash
v_date=`date +%Y-%m-%d`
echo "${v_date}"

输出当天日期控制格式为%Y-%m-%d 
有无单引号 输出结果一致 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d' -d "days"`
echo "${v_date}"
#!/bin/bash
v_date=`date '+%Y-%m-%d' -d 'days'`
echo "${v_date}"
#!/bin/bash
v_date=`date '+%Y-%m-%d' -d days`
echo "${v_date}"

加单双引号和不加单双引号得到的结果是一样的 
这里不明白 为什么输出的是明天的日期 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d' -d 'next monday'`
echo "${v_date}"

next monday 的单引号不能去掉,去掉会报错 
输出下一个星期一的日期 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d' -d next-month`
echo "${v_date}"
#!/bin/bash
v_date=`date '+%Y-%m-%d' -d 'next-month'`
echo "${v_date}"

next-month带引号和不带引号结果相同 
输出下个月的今天 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d %A'-d 'next-month'`
echo "${v_date}"

输出下个月的今天是星期几 
这里写图片描述

#!/bin/bash
v_date=`date '+%Y-%m-%d %A'-d '-1 days $1'`
echo "${v_date}"

接受输入日期,计算输入日期-1天的星期 
$1接受键盘的输入值 
这里写图片描述

总结:

date 以默认格式显示当前日期(Fri Nov 18 10:38:07 CST 2011) 
date +%Y%m%d 以yyyymmdd格式输出(20111118) 
date +”%Y%m%d %A” 以”yyyymmdd 星期”格式输出(20111118 Friday) 
date -d “1 day” +%Y%m%d 显示一天后的日期(20111119) 
date -d “3 day ago” +%Y%m%d 以指定格式显示3天前的日期 
date -d “1 month” +%Y-%m-%d 以指定格式显示一个月后的日期

创建以当前时间为文件名的 
mkdir date +%Y%m%d 
备份以时间做为文件名的 
tar cvf ./htdocsdate +%Y%m%d.tar ./*

%H 小时(00..23) 
% I 小时(01..12) 
% k 小时(0..23) 
% l 小时(1..12) 
% M 分(00..59) 
% p 显示出AM或PM 
% r 时间(hh:mm:ss AM或PM),12小时 
% s 从1970年1月1日00:00:00到目前经历的秒数 
% S 秒(00..59) 
% T 时间(24小时制)(hh:mm:ss) 
% X 显示时间的格式(%H:%M:%S) 
% Z 时区 日期域 
% a 星期几的简称( Sun..Sat) 
% A 星期几的全称( Sunday..Saturday) 
% b 月的简称(Jan..Dec) 
% B 月的全称(January..December) 
% c 日期和时间( Mon Nov 8 14:12:46 CST 1999) 
% d 一个月的第几天(01..31) 
% D 日期(mm/dd/yy) 
% h 和%b选项相同 
% j 一年的第几天(001..366) 
% m 月(01..12) 
% w 一个星期的第几天(0代表星期天) 
% W 一年的第几个星期(00..53,星期一为第一天) 
% x 显示日期的格式(mm/dd/yy) 
% y 年的最后两个数字( 1999则是99) 
% Y 年(例如:1970,1996等)

推荐 2
本文由 liliwu 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册