想把输入值限定在0-23之间,请问用grep如何检查合法性???

sh/bash/dash/ksh/zsh等Shell脚本
头像
yaoms
帖子: 4952
注册时间: 2007-10-19 14:51
来自: 深圳

#16

帖子 yaoms » 2008-04-23 17:26

貌似 BigSnake.NET 的BT方法可以
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
头像
BigSnake.NET
帖子: 12522
注册时间: 2006-07-02 11:16
来自: 廣州
联系:

#17

帖子 BigSnake.NET » 2008-04-23 17:31

常规方法..

代码: 全选

read i
[ "$i" -ge 0 -a "$i" -le 23 ]
^_^ ~~~
要理解递归,首先要理解递归。

地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
头像
patrickhe
帖子: 681
注册时间: 2005-07-21 19:13
来自: Peking, China
联系:

#18

帖子 patrickhe » 2008-04-23 17:34

vincent_zh 写了:我倒是想到先检查输入的是不是数字,再判断其范围是不是在0-23之间,但我想知道有没有简洁的方法呢???
期待高手
那把这个条件拆开好了

代码: 全选

[[ -n "$nbr" && "$nbr" -ge 0 && "$nbr" -le 23 ]]
头像
vincent_zh
帖子: 129
注册时间: 2008-04-05 10:56
来自: 学校

#19

帖子 vincent_zh » 2008-04-25 22:46

期待高手中。。。。。。
修己,安人
头像
yingfei
帖子: 273
注册时间: 2007-09-03 18:34
来自: 羊城通

#20

帖子 yingfei » 2008-04-26 22:46

代码: 全选

/home/yingfei$ cat aaa
2a
3
18
b6
23
24
123
20a
201
/home/yingfei$ grep -E '^((1?[0-9])|(2[0-3]))$' aaa
3
18
23
/home/yingfei$
头像
vincent_zh
帖子: 129
注册时间: 2008-04-05 10:56
来自: 学校

#21

帖子 vincent_zh » 2008-04-27 18:31

研究下先,谢谢楼上的
修己,安人
回复