免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: sxtywyg
打印 上一主题 下一主题

请教判断日期和read的变量不正确重新输入的问题 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2012-06-20 16:52 |只看该作者
回复 9# personball

rfc3339.py is a small Python library to format dates to rfc 3339 strings. Useful if you want to add an Atom feed to you site / project. Grab the file, drop it in your python source code, that's it! Licensed under the term of the ISC License a simple, permissive, BSD-like license.

Additionally, you can also install it from PyPi: pip install rfc3339 or easy_install rfc3339.Python

你可能调用的不是bash下date的参数,而是Python的

   

论坛徽章:
0
12 [报告]
发表于 2012-06-20 16:53 |只看该作者
回复 10# sxtywyg


    格式还是要看规范的,就像之前使用--rfc-3339='seconds' 这个选项一样

取自man date
  1. -R, --rfc-2822
  2.               output  date  and time in RFC 2822 format.  Example: Mon, 07 Aug
  3.               2006 12:34:56 -0600

  4.        --rfc-3339=TIMESPEC
  5.               output date and time in RFC 3339 format.  TIMESPEC=`date', `sec‐
  6.               onds',  or  `ns'  for  date and time to the indicated precision.
  7.               Date and time  components  are  separated  by  a  single  space:
  8.               2006-08-07 12:34:56-06:00
复制代码

论坛徽章:
0
13
发表于 2012-06-20 16:57
回复 11# sxtywyg


    = =。。。 我这边使用的date  到底是用哪个编程语言开发的我倒不清楚。。。但是一般rfc3339 这种规范和编程语言肯定没关系吧

论坛徽章:
0
14 [报告]
发表于 2012-06-20 17:00 |只看该作者
回复 12# personball

我的man date里怎么没有

--rfc-3339=TIMESPEC


如果使用--rfc-2822,不是不符合我要求的格式了?

另外,使用--rfc-2822这种规范的话,你只要输入数字,无论你按照不按照YYYY-MM-DD HH:MM输入,都不报错.

论坛徽章:
0
15 [报告]
发表于 2012-06-20 17:06 |只看该作者
回复 14# sxtywyg


    = =到底用不用这选项,不用太纠结唉,符合自己的情况就行了
  1. personball@vostro:~$date
  2. Wed Jun 20 17:05:51 CST 2012
  3. personball@vostro:~$date "+%Y-%m-%d %H:%M"
  4. 2012-06-20 17:06
  5. personball@vostro:~$date --rfc-2822
  6. Wed, 20 Jun 2012 17:06:07 +0800
  7. personball@vostro:~$date --rfc-3339='seconds'
  8. 2012-06-20 17:06:17+08:00
  9. personball@vostro:~$
复制代码

论坛徽章:
0
16
发表于 2012-06-20 17:10
本帖最后由 sxtywyg 于 2012-06-20 17:14 编辑

回复 15# personball


恩,可是date "+%Y-%m-%d %H:%M"

这个用到脚本里,岂不是当前时间了吗?我现在需要的是自定时间范围.

我现在需要是能判断日期格式是否符合要求,不符合就重新输入,直到符合;如果符合的话,执行下一条语句.

而你这个,date -d输入只要是数字,都可以正常进行.这样的话,就无法满足指定时间范围的需要,因为我指定了这个时间范围以后

要通过ls -alt按照时间排序输出日志.

论坛徽章:
0
17 [报告]
发表于 2012-06-20 17:10 |只看该作者
回复 14# sxtywyg


    不同发行版实现的命令选项是可能不同的。

论坛徽章:
0
18 [报告]
发表于 2012-06-20 17:13 |只看该作者
回复 16# sxtywyg


    这只是演示下date的输出
利用date格式化,只要用-d选项就行啦
  1. personball@vostro:~$date -d "2010/11/22 22:11" "+%Y-%m-%d %H:%M"
  2. 2010-11-22 22:11
复制代码

论坛徽章:
0
19 [报告]
发表于 2012-06-20 17:21 |只看该作者
回复 18# personball

那如果比如直接输入10,

你的脚本也直接退出了,并没有提示日期输入错误.

那输入的这个10,

[root@test ~]# date -d 10 "+%Y-%m-%d %H:%M"
2012-06-20 10:00

显示就是当天的10点的,比如,我想提取2012-06-16 2:00到2012-06-16 11:00的日志,但是由于手误,输入了10,但是通过了,

得到的结果就不是我想要的,可是我也没有提示使用者输入错误.
   

论坛徽章:
0
20 [报告]
发表于 2012-06-20 17:34 |只看该作者
回复 19# sxtywyg


    那就用正则吧
或者两者结合
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP