咨詢下老師,if判斷里不能用正則表達(dá)式么?
咨詢下老師
if [判斷]
????then
????????程序
fi
這個結(jié)構(gòu)里的判斷能否用正則表達(dá)式
比如判斷符號為+-*/之一,可否寫成
if [ "$ope" == [+-*/] ]
我一開始這樣寫,沒有加數(shù)字的判斷
是成功了
后來加了數(shù)字的判斷,就不行了
不曉得是碰巧還是我的寫法有問題
如果能用正則,這個計算器就簡單多了
-----------------------------------------------
我做了一個小案例
#!/bin/bash
#輸入字符串str
read -p "please input a string:" str
#如果字符串含有數(shù)字
if [ "$str" == "[0-9]" ]
????then
#輸出“有數(shù)字”
????????echo "have number!"
#否則
else
#輸出“沒有數(shù)字”
????echo "haven't number!"
fi
請問這樣寫對么?
我輸入單數(shù)字“4”
都顯示"haven't number!"
求指教
-------------
順帶說一句 ?我把“”去了也不行
貌似if [判斷]
中的判斷只能識別字符串(可轉(zhuǎn)數(shù)字)
正則中的[]也會被識別成字符串
求高手指點
2017-12-29
首先要先定義符號變量sign="^[+,-,*,/]$"
然后判斷ope是否符合sign正則表達(dá)
if [ "$ope" =~ ?$sign ]
注意語法格式。
2017-03-23
[[]]可以解決,但不應(yīng)該是"[0-9]"吧,應(yīng)該沒有引號
2017-02-15
已找到答案
if后判斷用匹配 ?需要套用[[]]格式
2017-02-11
可以用正則的,這個與數(shù)字判斷沒有關(guān)系的吧