linux怎么判斷字符串是否為數(shù)字

判斷方法:1、用“”$值”|[-n “`sed -n ‘/^[0-9][0-9]*$/p’`”]”語句;2、用“grep ‘^[[:digit:]]*$’

linux怎么判斷字符串是否為數(shù)字

本教程操作環(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&gt;/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)聲明
THE END
喜歡就支持一下吧
點贊5 分享