想把输入值限定在0-23之间,请问用grep如何检查合法性???
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
- BigSnake.NET
- 帖子: 12522
- 注册时间: 2006-07-02 11:16
- 来自: 廣州
- 联系:
既然一定要用grep....
代码: 全选
read i
grep -E '^(0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23)$' <<<"$i"
^_^ ~~~
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
要理解递归,首先要理解递归。
地球人都知道,理论上,理论跟实际是没有差别的,但实际上,理论跟实际的差别是相当大滴。
- bones7456
- 帖子: 8495
- 注册时间: 2006-04-12 20:05
- 来自: 杭州
- 联系:
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校
- patrickhe
- 帖子: 681
- 注册时间: 2005-07-21 19:13
- 来自: Peking, China
- 联系:
代码: 全选
#!/bin/bash
EXIT_CONDITION=exit
until [ "$var" = "$EXIT_CONDITION" ]
do
read -p "Please input: " var
echo "String: $var"
nbr=`echo $var | pcregrep -o '\d+'`
if [[ -n "$nbr" && "$nbr" -ge 0 && "$nbr" -le 23 ]]; then
echo "Valid"
else
echo "Invalid"
fi
done
代码: 全选
pcregrep -o '\d+'
代码: 全选
grep -o '[0-9]+'
上次由 patrickhe 在 2008-04-23 16:59,总共编辑 1 次。
☩✠✟
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
。。。。原来你不会变通。vincent_zh 写了:不可以啊,看下这个你就知了
vincent@NSHM:~/Desktop$ read i
2a
vincent@NSHM:~/Desktop$ echo $i
2a
vincent@NSHM:~/Desktop$ expr $i \> 0
1
vincent@NSHM:~/Desktop$ expr $i \< 23
0
这就不对了啊,输入的时候可以输入任何字符的,没有限定的
Nothing 有事请发邮件到 yms541 AT gmail.com
alias 爱慕颇雷尔='mplayer'
alias 爱慕颇雷尔='mplayer'
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校
- yaoms
- 帖子: 4952
- 注册时间: 2007-10-19 14:51
- 来自: 深圳
- vincent_zh
- 帖子: 129
- 注册时间: 2008-04-05 10:56
- 来自: 学校