咨询下老师
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 [判断]
中的判断只能识别字符串(可转数字)
正则中的[]也会被识别成字符串
求高手指点
首先要先定义符号变量sign="^[+,-,*,/]$"
然后判断ope是否符合sign正则表达
if [ "$ope" =~ $sign ]
注意语法格式。
[[]]可以解决,但不应该是"[0-9]"吧,应该没有引号
已找到答案
if后判断用匹配 需要套用[[]]格式
可以用正则的,这个与数字判断没有关系的吧