博客專欄

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

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

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

shell中的比較運算符:

-eq       //等于

-ne       //不等于

-gt        //大于 (greater)

-lt         //小于 (less)

-ge       //大于等于

-le        //小于等于


命令的邏輯關系:

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

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

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

eg:

shell中的邏輯運算符:

邏輯與:    &&
第一個條件為假時,第二個條件不用再判斷,最終結果已經有;
第一個條件為真時,第二個條件必須得判斷。
邏輯或:    ||
邏輯非:       !

 

舉例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
注意點:

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

[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 的話,則需要加中括號。

[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中大于、大于等于,小于,小于等于想用 >,>=,<,<=,則需要加雙括號,而不是中括號

[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


*博客內容為網友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯系工作人員刪除。



關鍵詞: shell

相關推薦

技術專區(qū)

關閉