Shell中判斷字符串是否為數(shù)字的6種方法分享
本篇文章主要介紹了"shell 判斷字符串是否為數(shù)字",主要涉及到shell 判斷字符串是否為數(shù)字方面的內(nèi)容,對(duì)于shell 判斷字符串是否為數(shù)字感興趣的同學(xué)可以參考一下。
#!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers 第一個(gè)-n是shell的測(cè)試標(biāo)志,對(duì)后面的串"`sed -n '/^[0-9][0-9]*$/p'`" 進(jìn)行測(cè)試,如果非空,則結(jié)果為真。 sed默認(rèn)會(huì)顯示所有輸入行信息的,sed 的“-n”選項(xiàng)是讓sed不要顯示,而只顯示我們所需要的內(nèi)容:即后面的表達(dá)式所匹配的行,這是通過(guò)表達(dá)式中加入“p”命令來(lái)實(shí)現(xiàn)的。 /^[0-9][0-9]*$/他的含義是匹配至少由一位數(shù)字構(gòu)成的行 ## 方法2, 可以,不過(guò)不是bash實(shí)現(xiàn)的,是使用了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 '{print($0~/^[-]?([0-9])+[.]?([0-9])+$/)?"number":"string"}' ## 方法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
相關(guān)文章
Linux下利用Opencv打開(kāi)筆記本攝像頭問(wèn)題
這篇文章主要介紹了Linux下利用Opencv打開(kāi)筆記本攝像頭問(wèn)題,需要的朋友可以參考下2017-08-08一天一個(gè)shell命令 linux文件內(nèi)容操作系列-cat命令詳解
這篇文章主要介紹了一天一個(gè)shell命令 linux文件內(nèi)容操作系列-cat命令詳解,需要的朋友可以參考下2016-06-06linux下執(zhí)行shell命令方法簡(jiǎn)介
本文給大家分享的是linux系統(tǒng)下執(zhí)行shell命令的常用的2種方法,希望對(duì)初學(xué)shell命令的小伙伴能夠有所幫助2016-12-12shell中各種括號(hào)的作用詳解()、(())、[]、[[]]、{}(推薦)
本文給大家收藏整理了shell中各種括號(hào)的作用,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧2017-09-09linux多線(xiàn)程編程詳解教程(線(xiàn)程通過(guò)信號(hào)量實(shí)現(xiàn)通信代碼)
這篇文章主要介紹了linux多線(xiàn)程編程詳解教程,提供線(xiàn)程通過(guò)信號(hào)量實(shí)現(xiàn)通信的代碼,大家參考使用吧2013-12-12Linux 中 RPM包 安裝 查詢(xún) 卸載命令小結(jié)及yum命令詳解
RPM 的全稱(chēng)為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。Linux 安裝時(shí),除了幾個(gè)核心模塊以外,其余幾乎所有的模塊均通過(guò)RPM 完成安裝。RPM 有五種操作模式,分別為:安裝、卸載、升級(jí)、查詢(xún)和驗(yàn)證2015-11-11shell中嵌套執(zhí)行expect命令實(shí)例
這篇文章主要介紹了shell中嵌套執(zhí)行expect命令實(shí)例,一直都想把expect的操作寫(xiě)到bash腳本里,這樣就不用我再寫(xiě)兩個(gè)腳本來(lái)執(zhí)行了,需要的朋友可以參考下2014-12-12