shell 判斷字串是否為數字

2021-06-19 07:30:44 字數 1257 閱讀 2282

#!/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」選項是讓sed不要顯示,而只顯示我們所需要的內容:即後面的表示式所匹配的行,這是通過表示式中加入「p」命令來實現的。

/^[0-9][0-9]*$/

他的含義是匹配至少由一位數字構成的行

## 方法2, 可以,不過不是bash實現的,是使用了grep的正則  

#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

#case

"$1" in  

#    [1-9][0-9]*)   

#        echo "$1 is number."

#        ;;  

#    *)    

#        ;;  

#esac  

## 方法5,awk  

#echo $1| awk ''

## 方法5,awk  

#if [ -n "$(echo $1| sed -n "/^[0-9]\+$/p")" ];then  

#    echo "$1 is number."

#else

#    echo 'no.'

#fi  

## 方法6,expr  

expr $1

"+"10 &> /dev/null

if [ $? -eq 0 ];then  

echo "$1 is number"

else

echo "$1 not number"

fi  

Shell判斷字串是否為數字

方法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不要顯...

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 小於...