Shell中判斷字串是否為數字的6種方法分享

2021-09-08 19:11:58 字數 1173 閱讀 2061

#!/bin/bash  

## 方法1

a=1234;echo "$a"|[ -n "`sed -n '/^[0-9][0-9]*$/p'`" ] && echo string a is numbers

的測試標誌,對後面的串"`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 判斷字串是否為數字

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判斷字串是否為數字

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

C 基礎 判斷字串是否為空 判斷字元是否為數字

一 判斷字串是否為空 string.empty和string 是一樣的,同樣都是需要占用記憶體空間 空字串 但優先推薦使用string.empty console.writeline equals string.empty 結果 true 還一種高效判斷方法 s.length 0 來判斷字串是否為空...