判斷方法:1、用“”$值”|[-n “`sed -n ‘/^[0-9][0-9]*$/p’`”]”語句;2、用“grep ‘^[[:digit:]]*$’
本教程操作環(huán)境:linux5.9.8系統(tǒng)、Dell G3電腦。
linux shell 判斷字符串是否為數(shù)字
方法1
a=1234 echo?"$a"|[?-n?"`sed?-n?'/^[0-9][0-9]*$/p'`"?]?&&?echo?string?a?is?numbers
第一個-n是shell的測試標志,對后面的串”`sed -n ‘/^[0-9][0-9]*$/p’`” 進行測試,如果非空,則結(jié)果為真。
sed默認會顯示所有輸入行信息的,sed 的“-n”選項是讓sed不要顯示,而只顯示我們所需要的內(nèi)容:即后面的表達式所匹配的行,這是通過表達式中加入“p”命令來實現(xiàn)的。
/^[0-9][0-9]*$/ 含義是匹配至少由一位數(shù)字構(gòu)成的行
方法2
if?grep?'^[[:digit:]]*$'?<p><strong><span style="color:#f33b45;">方法3</span></strong></p><pre class="brush:js;toolbar:false;">if?[?"$1"?-gt?0?]?2>/dev/NULL?;then? ??????echo?"$1?is?number."? else? ??????echo?'no.'? fi
方法4
case?"$1"?in? ??[1-9][0-9]*)?? ????echo?"$1?is?number."? ????;;? ??*)?? ????;;? esac
方法5
echo?$1|?awk?'{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?"number":"string"}' if?[?-n?"$(echo?$1|?sed?-n?"/^[0-9]+$/p")"?];then? ??echo?"$1?is?number."? else? ??echo?'no.'? fi
方法6
expr $1 "+" 10 &> /dev/null if [ $? -eq 0 ];then echo "$1 is number" else echo "$1 not number" fi
相關(guān)推薦:《Linux視頻教程》
? 版權(quán)聲明
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載。
THE END
喜歡就支持一下吧
相關(guān)推薦