Shell中判斷字符串是否為數(shù)字的6種方法分享
更新時間:2015年06月09日 09:02:57 投稿:junjie
這篇文章主要介紹了Shell中判斷字符串是否為數(shù)字的6種方法分享,本文直接給出實現(xiàn)代碼,需要的朋友可以參考下
本篇文章主要介紹了"shell 判斷字符串是否為數(shù)字",主要涉及到shell 判斷字符串是否為數(shù)字方面的內(nèi)容,對于shell 判斷字符串是否為數(shù)字感興趣的同學(xué)可以參考一下。
#!/bin/bash ## 方法1 a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers 第一個-n是shell的測試標(biāo)志,對后面的串"`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, 可以,不過不是bash實現(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)文章
一天一個shell命令 linux文件內(nèi)容操作系列-cat命令詳解
這篇文章主要介紹了一天一個shell命令 linux文件內(nèi)容操作系列-cat命令詳解,需要的朋友可以參考下2016-06-06shell中各種括號的作用詳解()、(())、[]、[[]]、{}(推薦)
本文給大家收藏整理了shell中各種括號的作用,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-09-09linux多線程編程詳解教程(線程通過信號量實現(xiàn)通信代碼)
這篇文章主要介紹了linux多線程編程詳解教程,提供線程通過信號量實現(xiàn)通信的代碼,大家參考使用吧2013-12-12Linux 中 RPM包 安裝 查詢 卸載命令小結(jié)及yum命令詳解
RPM 的全稱為Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下軟件包的軟件。Linux 安裝時,除了幾個核心模塊以外,其余幾乎所有的模塊均通過RPM 完成安裝。RPM 有五種操作模式,分別為:安裝、卸載、升級、查詢和驗證2015-11-11