为了账号安全,请及时绑定邮箱和手机立即绑定

咨询下老师,if判断里不能用正则表达式么?

咨询下老师

if [判断]

    then

        程序

fi

这个结构里的判断能否用正则表达式

比如判断符号为+-*/之一,可否写成

if [ "$ope" == [+-*/] ]

我一开始这样写,没有加数字的判断

是成功了

后来加了数字的判断,就不行了

不晓得是碰巧还是我的写法有问题

如果能用正则,这个计算器就简单多了


-----------------------------------------------


我做了一个小案例

#!/bin/bash

#输入字符串str

read -p "please input a string:" str

#如果字符串含有数字

if [ "$str" == "[0-9]" ]

    then

#输出“有数字”

        echo "have number!"

#否则

else

#输出“没有数字”

    echo "haven't number!"

fi


请问这样写对么?

我输入单数字“4”

都显示"haven't number!"

求指教

-------------

顺带说一句  我把“”去了也不行

貌似if [判断]

中的判断只能识别字符串(可转数字)

正则中的[]也会被识别成字符串

求高手指点

正在回答

4 回答

首先要先定义符号变量sign="^[+,-,*,/]$"

然后判断ope是否符合sign正则表达

if [ "$ope" =~  $sign ]

注意语法格式。

1 回复 有任何疑惑可以回复我~
#1

你像风一样0912

if后面写错了,应该是if [[ "$ope" =~ $sign ]]
2017-12-29 回复 有任何疑惑可以回复我~

[[]]可以解决,但不应该是"[0-9]"吧,应该没有引号

0 回复 有任何疑惑可以回复我~

已找到答案

if后判断用匹配  需要套用[[]]格式

0 回复 有任何疑惑可以回复我~

可以用正则的,这个与数字判断没有关系的吧

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

咨询下老师,if判断里不能用正则表达式么?

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号