Shell判斷字串是否為數字

2021-10-05 12:13:45 字數 1203 閱讀 1328

方法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'`" 進行測試,如果非空,則結果為真。

sed缺省會顯示所有輸入行資訊的,sed 的「-n」選項是讓sed不要顯示,而只顯示我們所需要的內容:即後面的表示式所匹配的行,這是通過表示式中加入「p」命令來實現的。

/^[0-9][0-9]*$/ 含義是匹配至少由一位數字構成的行

方法2

if grep '^[[:digit:]]*$' <<< "$1";then 

echo "$1 is number."

else

echo 'no.'

fi

方法3

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 ''

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

shell 判斷字串是否為數字

bin bash 方法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 進行測試,如果非空,則結果為真。sed缺省會顯示所有輸入行資訊的,sed 的 n...

shell字串比較 判斷是否為數字

二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於...

shell字串比較 判斷是否為數字

二元比較操作符,比較變數或者比較數字.注意數字與字串的區別.整數比較 eq 等於,如 if a eq b ne 不等於,如 if a ne b gt 大於,如 if a gt b ge 大於等於,如 if a ge b lt 小於,如 if a lt b le 小於等於,如 if a le b 小於...