shell整理(34)===date 命令的小脚本
(一)接受一个输入,判断是不是一个日期,用户的输入可以是2017-10-1 或 2017.10.1 或2017/10/1 shell代码如下 #!/bin/bash read-p"Input:"date a=`echo$date|awk-F'[./-]''{print$1"/"$2"/"$3}'` date-d$a&>/dev/null if[$?-eq0];then echo"ok" else echo"no" fi (二)将日期写入一个文本,判断这个文本中的日期分别是这一年的哪一天。 例如 [root@localhost ding1]# cat file1 2017-10-1 2016-2-2 2017-1-1 [root@localhost ding1]# shell代码如下 str(){ #a=`echo$line|tr'/.-''/'` a=`echo$line|awk-F"[./-]"'{print$1"/"$2"/"$3}'` date-d$a+%j } #set-x catfile1|whilereadline do str done #set+x 简单的date 命令总结: date -d <字符串> :显示自符串所指的日期与时间。字符串前后加上双引号,好像有的不加也可以,具体情况具体分析 例如: [root@localhost ding1]# date -d 2017-1-1 +%j #加%j 表示该年中的第几天 001 [root@localhost ding1]# date -d +%j date: 无效的日期"+%j" [root@localhost ding1]# 也就是说date -d 后面必须指定一个字符串。 [root@localhost ding1]# date -d 2017-1-1 #显示字符串所指的时间与日期 2017年 01月 01日 星期日 00:00:00 CST [root@localhost ding1]# date +%F 显示当前的时间,(年-月-日),例如: [root@localhost ding1]# date +%F 2017-10-05 [root@localhost ding1]# +%F 就相当于+%y-%m-%d 例如: [root@localhost ding1]# date +%y-%m-%d 17-10-05 [root@localhost ding1]# date +%y*%m*%d #中间的符号自己定义 17*10*05 [root@localhost ding1]# 例如我要显示下个月和下一年的今天 [root@localhost ding1]# date -d +1month +%y-%m-%d 17-11-05 [root@localhost ding1]# date -d +1year +%F 2018-10-05 [root@localhost ding1]# date -s <字符串>:根据字符串来设置日期与时间,只有root权限才能设置,其他只能查看。字符串前后加上双引号
[root@localhost ding1]# date 2017年 10月 05日 星期四 10:21:52 CST [root@localhost ding1]# date -s 2012-5-23 01:01:10 date: 参数"01:01:10" 缺少前导的"+"; 当使用选项来描述日期是,任何非选项参数都必须以"+"所引导的字符串出现 请尝试执行"date --help"来获取更多信息。 [root@localhost ding1]# date -s "2012-5-23 01:01:10" #这个地方加上双引号 2012年 05月 23日 星期三 01:01:10 CST [root@localhost ding1]# date 2012年 05月 23日 星期三 01:01:13 CST [root@localhost ding1]# (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- twitter-bootstrap – Twitter Bootstrap – Center Modal
- angularjs – 在使用andCallThrough()时在每个测试用例后重
- 2.Webservice返回json数据并去掉Xml头部。
- shell – 如何只查看文件的前n行?
- 【BootStrap】陌生=》熟悉=》惊喜
- angularjs – 角度JS测试驱动开发与多个控制器
- scala – 在Play中通过“activator run”运行时获取要编译的
- unix – 执行’mv A B’:’inode’会被更改吗?
- 从Unix读取而不使用Spring Integration复制到本地时发现的循
- 从docker容器连接到远程MySQL数据库