LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 931|回复: 8

如何判断一个字符串是不是一个数?

[复制链接]
发表于 2006-1-14 21:43:47 | 显示全部楼层 |阅读模式
怎么判断啊?
BTW,有没有比较完整一点的bash教程,最好是中文的。
 楼主| 发表于 2006-1-14 22:13:07 | 显示全部楼层
好像在ksh里可以用
case $a in
([0-9])) 是数时的操作
          ;;
        *) 不是数时的操作
          ;;
esac
但是在bash里执行出错,不知是bash不支持还是有什么参数要设定?
回复 支持 反对

使用道具 举报

发表于 2006-1-14 22:40:23 | 显示全部楼层
可行方法之一:与任意数字相加,根据$?来判断。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-1-14 23:34:17 | 显示全部楼层
谢谢,我用了一个跟你类似的办法:做了一个test测试,然后测试$?,也可以。
不过有没有简单一点的方法呢?
回复 支持 反对

使用道具 举报

发表于 2006-1-15 11:27:44 | 显示全部楼层
用正则
/^[\d]+$/
回复 支持 反对

使用道具 举报

发表于 2006-1-16 14:45:25 | 显示全部楼层
shopt -s extglob  ##打开bash中扩展的正则表达式
case $a in
     +([0-9]))   echo "A number."
     *)              echo "Not a number"
esac
回复 支持 反对

使用道具 举报

发表于 2006-1-17 12:27:23 | 显示全部楼层
  1. /^[\d]+$/
复制代码
这个看不太懂 =.=''
回复 支持 反对

使用道具 举报

发表于 2006-1-17 12:59:30 | 显示全部楼层
同5楼,用正则
回复 支持 反对

使用道具 举报

发表于 2006-1-17 20:27:23 | 显示全部楼层
五楼的RE好像用得不对,应为/<和\>在两端。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表