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