博客專欄

EEPW首頁(yè) > 博客 > shell中的比較運(yùn)算符 -eq -ne -gt -lt -ge -le 及 == != 與 邏輯運(yùn)算符$$ || !

shell中的比較運(yùn)算符 -eq -ne -gt -lt -ge -le 及 == != 與 邏輯運(yùn)算符$$ || !

發(fā)布人:電子禪石 時(shí)間:2023-05-06 來(lái)源:工程師 發(fā)布文章

shell中的比較運(yùn)算符:

-eq       //等于

-ne       //不等于

-gt        //大于 (greater)

-lt         //小于 (less)

-ge       //大于等于

-le        //小于等于


命令的邏輯關(guān)系:

在 linux 中命令執(zhí)行狀態(tài):0 為真,其他為假  。

$?  是顯示最后命令的退出狀態(tài),0 表示沒有錯(cuò)誤,其他(比如1等)表示有錯(cuò)誤

————————————————

eg:

shell中的邏輯運(yùn)算符:

邏輯與:    &&
第一個(gè)條件為假時(shí),第二個(gè)條件不用再判斷,最終結(jié)果已經(jīng)有;
第一個(gè)條件為真時(shí),第二個(gè)條件必須得判斷。
邏輯或:    ||
邏輯非:       !

 

舉例1:


echo $isDeploy
if [ $isDeploy == true ]
    then echo 部署
else
    echo 不部署
fi

效果:


舉例2:

[root@app ~]# response_code=$(curl -I -s www.baidu.com -w %{http_code}|tail -n1)
[root@app ~]# echo ${response_code}
200
[root@app ~]# if [ $response_code == 200 ];then echo true; else echo false; fi
true
[root@app ~]# if [ $response_code == 201 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code -eq 201 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code -eq 200 ];then echo true; else echo false; fi
true
注意點(diǎn):

1. shell中如果是等于、不等于,既可以用 -eq、-ne (外面需要加中括號(hào)),也可以用 == 、!=(外面加中括號(hào)或雙括號(hào)都行)

[root@app ~]# response_code=$(curl -I -s www.baidu.com -w %{http_code}|tail -n1)
[root@app ~]# echo ${response_code}
200
 
//   等于
[root@app ~]# if [ $response_code -eq 200 ];then echo true; else echo false; fi
true
[root@app ~]# if [ $response_code -eq 201 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code == 200 ];then echo true; else echo false; fi
true
[root@app ~]# if [ $response_code == 201 ];then echo true; else echo false; fi
false
[root@app ~]# if (( $response_code == 201 ));then echo true; else echo false; fi
false
[root@app ~]# if (( $response_code == 200 ));then echo true; else echo false; fi
true
 
//  不等于
[root@app ~]# if [ $response_code -ne 200 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code -ne 201 ];then echo true; else echo false; fi
true
 
[root@app ~]# if [ $response_code != 200 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code != 201 ];then echo true; else echo false; fi
true
[root@app ~]# if (( $response_code != 200 ));then echo true; else echo false; fi
false
[root@app ~]# if (( $response_code != 201 ));then echo true; else echo false; fi
true

2. shell中如果是大于,大于等于,小于,小于等于,用 -gt, -ge,-lt,-le 的話,則需要加中括號(hào)。

[root@app ~]# response_code=$(curl -I -s www.baidu.com -w %{http_code}|tail -n1)
[root@app ~]# echo ${response_code}
200
[root@app ~]# if [ $response_code -gt 200 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code -ge 200 ];then echo true; else echo false; fi
true
[root@app ~]# if [ $response_code -lt 200 ];then echo true; else echo false; fi
false
[root@app ~]# if [ $response_code -le 200 ];then echo true; else echo false; fi
true

3. shell中大于、大于等于,小于,小于等于想用 >,>=,<,<=,則需要加雙括號(hào),而不是中括號(hào)

[root@app ~]# response_code=$(curl -I -s www.baidu.com -w %{http_code}|tail -n1)
[root@app ~]# echo ${response_code}
200
[root@app ~]# if (( $response_code > 200 ));then echo true; else echo false; fi
false
[root@app ~]# if (( $response_code >= 200 ));then echo true; else echo false; fi
true
[root@app ~]# if (( $response_code < 200 ));then echo true; else echo false; fi
false
[root@app ~]# if (( $response_code <= 200 ));then echo true; else echo false; fi
true


原文鏈接:https://blog.csdn.net/wudinaniya/article/details/104796403


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: shell

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉