|
mygod |
发表于: 2001/11/19 04:55pm
|
假设要判断的变量为name,则方法如下: asd=`echo $name | awk '{ if (substr($1,1,1)>=0 && substr($1,1,1) <=9 && substr($1,2,1) >=0 && substr($1,2,1) <=9 && substr($1,3,1) >=0 && substr($1,3,1) <=9 && substr($1,4,1) >=0 && substr($1,4,1) <=9) printf("true"); else printf("false"); }'`if [ asd = "true" ] #是数字 。。。。 elif #不是数字 。。。 这个办法比较笨,不知其他人有没有更好的方法!
|
| |
|
liangzi |
发表于: 2001/11/22 03:15pm
|
| 在awk或case语句中对变量使用正则表达式 ^....$ 看其是否匹配就可以了。 |
| |
|
liangzi |
发表于: 2001/11/22 03:37pm
|
| 不好意思,应该用正则表达式[0-9][0-9][0-9][0-9]更简单。上面的方法想补救的话,可用 #!/bin/sh # test expr $1 + 10(任意数字) >/dev/null 2>&1 STATUS=$? (测试上条语句是否成功) if ["$STATUS"!="0"];then echo "$1 is composed of number" exit 0 执行test $name |
| |
|
mygod |
发表于: 2001/11/22 03:39pm
|
| 对,好办法! |
| |
|
shuweich |
发表于: 2001/12/01 12:49pm
|
# cat zcc V=$1 if ! echo $V|grep '.....' >/dev/null then if echo $V|grep '[0-9][0-9][0-9][0-9]' >/dev/null then echo "ok" else echo "bad number" fi else echo 'bad number' fi # ./zcc 1234 ok. # ./zcc 123333 bad number # ./zcc 123 bad number试试如何? |
| |
|
hyxdh |
发表于: 2002/01/20 09:19pm
|
为何不用case呢?更简单! case $a in [0-9][0-9][0-9][0-9]) echo"变量是由4个数字组成";; *) echo "变量不是由4个数字组成";; esac
|
| |
|
caoshun |
发表于: 2002/02/05 10:34am
|
| 还是用CASE这种方法比较高。 |
| |
|
michaelds |
发表于: 2002/03/21 05:48pm
|
借这个帖子提醒大家,模式匹配用了awk,grep,case这些常用的,可别忘了还有expr啊。有时反而更直接。对于本例: expr $str : '^[0-9][0-9][0-9][0-9]$' 如果值为4就是满足要求的串,否则为0。 |
| |
|
valentine |
发表于: 2002/03/21 11:08pm
|
[这个贴子最后由valentine在 2002/03/21 11:42pm 编辑]
grep,awk,expr,case全用到了。 讨论热烈的一个好贴。 偶用 expr $1 : [0-9]* |grep 4 |
| |
|
michaelds |
发表于: 2002/03/22 09:26am
|
| valentine ,偷懒可不行啊,对于expr $1 : [0-9]*来说,如果$1="1234a"的话结果也是4。 |
| |
|
valentine |
发表于: 2002/03/22 10:50am
|
michaelds 确实逻辑严密啊。 加个$限制一下好了。 expr $1 : "[0-9]*$" |grep 4 |
| |
|
独孤求胜 |
发表于: 2002/11/06 09:35pm
|
如果测试变量a test $a -gt 999 -a $a -lt 10000 2>/dev/nul 再判断$?就OK了 |
| |
|
torrent |
发表于: 2002/11/09 10:52am
|
[quote][b]下面引用由[u]valentine[/u]在 [i]2002/03/22 10:50am[/i] 发表的内容:[/b] michaelds 确实逻辑严密啊。 加个$限制一下好了。 expr $1 : "*$" |grep 4 [/quote] 什么时候才能像版主一样高啊!! |
| |
|
|