shell 比較大小

2021-08-16 18:45:51 字數 1757 閱讀 9967

一、整數比較

-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" ]

大於(需要雙括號),如:(("$a" > "$b"))

>= 大於等於(需要雙括號),如:(("$a" >= "$b"))

小資料比較可使用awk

二、字串
#判斷字串是否相等

if [ "$a" = "$b" ];then

echo

"[ = ]"

fi#判斷字串是否相等,與上面的=等價

if [ "$a" == "$b" ];then

echo

"[ == ]"

fi#注意:==的功能在和中的行為是不同的,如下

#如果$a以」a」開頭(模式匹配)那麼將為true

if [[ "$a" == a* ]];then

echo

"[[ ==a* ]]"

fi#如果$a等於a*(字元匹配),那麼結果為true

if [[ "$a" == "a*" ]];then

echo

"==/"a*/""

fi#file globbing(通配) 和word splitting將會發生, 此時的a*會自動匹配到對應的當前以a開頭的檔案

#如在當前的目錄中有個檔案:add_crontab.sh,則下面會輸出ok

#if [ "add_crontab.sh" == a* ];then

#echo "ok"

#fiif [ "$a" == a* ];then

echo

"[ ==a* ]"

fi#如果$a等於a*(字元匹配),那麼結果為true

if [ "$a" == "a*" ];then

echo

"==/"a*/""

fi#字串不相等

if [ "$a" != "$b" ];then

echo

"[ != ]"

fi#字串不相等

if [[ "$a" != "$b" ]];then

echo

"[[ != ]]"

fi#字串不為空,長度不為0

if [ -n "$a" ];then

echo

"[ -n ]"

fi#字串為空.就是長度為0.

if [ -z "$a" ];then

echo

"[ -z ]"

fi#需要轉義<,否則認為是乙個重定向符號

if [ $a /< $b ];then

echo

"[ < ]"

fiif [[ $a

< $b ]];then

echo

"[[ < ]]"

fi#需要轉義》,否則認為是乙個重定向符號

if [ $a /> $b ];then

echo

"[ > ]"

fiif [[ $a > $b ]];then

echo

"[[ > ]]"

fi

double比較大小

參考 comparing floating point numbers 總結幾點 0.float佔4byte,精度是6 7位 double佔8byte,精度是15 16位。1.因為double型別或float型別都是有精度的,其實都是取的近似值,所以有個誤差。和乙個很小的數比如0.00000001 ...

1235 比較大小

比較大小 time limit 1000ms memory limit 65536k total submit 145 accepted 51 description 輸入兩個十進位制整數a,b,請判斷它們的大小關係。我們重新定義兩個數的大小比較規則為 誰的二進位制表示中含1的個數多誰大,若含1的個...

IOS float型別比較大小

int bellowgreenlow 0,bellowgreenhigh 0,bellowyellowhigh 0,aboveyellowhigh 0 int countsum 0 兩個floatleixing 比較時,不能直接相減,當比較是否相等時,應該用兩者之差的絕對值 與精度 相比,如果小於則...