开发者社区> 问答> 正文

shell编程中if

shell编程中if [[ ! ${a} =~ ^[0-9]+ ]]条件判断式如何工作的?
我只知道这个好像是如果变量a不是以数字开头就执行if语句,但是特别的:=~是什么意思?^[0-9]+ 是什么意思?另外这个判断使用的是扩展正则表达式?

展开
收起
杨冬芳 2016-07-15 16:22:55 2370 0
2 条回答
写回答
取消 提交回答
  • http://kodango.com

    你需要先了解 [[..]] 和 [..] 的区别,有一篇 wiki 可以参考 http://mywiki.wooledge.org/BashFAQ/031

    简单说 [[..]] 和 [..] 都是 bash test 的命令,里面可以是一些表达式,但是前者比后者功能更加多,也更不容易出错。比如你提到的问题,=~ 就是一个扩展的 test 表达式,它的作用是 “RegularExpression matching”,=~ 前面的是字符串,后面是正则表达式。这个 if 判断的意思就是判断变量 a 不是数字开头。

    2019-07-17 19:57:14
    赞同 展开评论 打赏
  • IT从业

    =~意思是匹配后面的正则式,^是匹配开头,[0-9]意思是匹配0-9的字符也就是数字,+是指匹配不少于一次,也就是有不少于一个数字

    2019-07-17 19:57:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Shell 脚本速查手册 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载