sh/bash/dash/ksh/zsh等Shell脚本
-
mushroom09
- 帖子: 16
- 注册时间: 2009-08-13 16:57
#1
帖子
由 mushroom09 » 2009-10-29 14:15
我写一脚本要求输入的第一个参数格式为 hh:mm:ss
请问在脚本中如何判断参数格式是否正确呢?
我是初学的,grep用的还不熟,中间的':'不知如何处理
谢谢!
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#2
帖子
由 eexpress » 2009-10-29 14:17
为什么那输入这个作参数啊。
● 鸣学
-
mushroom09
- 帖子: 16
- 注册时间: 2009-08-13 16:57
#3
帖子
由 mushroom09 » 2009-10-29 14:22
感觉在使用的时候这个格式比较人性化好理解啊,而且脚本需要把时间转换成秒数
有什么方法吗?
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#4
帖子
由 eexpress » 2009-10-29 14:27
就知道你还有其他步骤。最好找一个支持strftime函数的语言来写。
● 鸣学
-
yingfei
- 帖子: 273
- 注册时间: 2007-09-03 18:34
- 来自: 羊城通
#5
帖子
由 yingfei » 2009-10-29 14:28
给你一个不是灰常灰常严格的判断。 不过一般的应用 应该没什么问题:
代码: 全选
echo $1 | grep "^\([0-2][0-3]\):\([0-5][0-9]\):\([0-5][0-9]\)$"
[ "$?" = "0" ] && echo OK || echo NOT OK
[/size]
-
t3swing
- 帖子: 1028
- 注册时间: 2008-11-01 21:42
- 来自: 树下板凳
#6
帖子
由 t3swing » 2009-10-29 15:31
用date判断吧 ,同时也可以输出1970到现在的秒数(%s参数)
例子:
date -d 36:12:12 +%s;echo $?
date: 无效的日期 “36:12:12”
1
str="15:30:59";date -d $str +%s;echo $?
1256801459
0
根据返回值判断输入时间是否正确,date很强大,一般常用处理够了
民族的脊梁,是踏实做事的人,非只知道骂街的泼妇。
-
zzxop
- 帖子: 45
- 注册时间: 2005-04-26 15:23
#8
帖子
由 zzxop » 2009-11-18 11:38
yingfei 写了:给你一个不是灰常灰常严格的判断。 不过一般的应用 应该没什么问题:
代码: 全选
echo $1 | grep "^\([0-2][0-3]\):\([0-5][0-9]\):\([0-5][0-9]\)$"
[ "$?" = "0" ] && echo OK || echo NOT OK
[/size]
支持正则表达式
-
eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
#9
帖子
由 eexpress » 2009-11-18 14:58
错得很多的。还支持。

● 鸣学