专栏中心

EEPW首页 > 专栏 > shell中的比较运算符 -eq -ne -gt -lt -ge -le 及 == != 与 逻辑运算符$$ || !

shell中的比较运算符 -eq -ne -gt -lt -ge -le 及 == != 与 逻辑运算符$$ || !

发布人:电子禅石 时间:2023-05-06 来源:工程师 发布文章

shell中的比较运算符:

-eq       //等于

-ne       //不等于

-gt        //大于 (greater)

-lt         //小于 (less)

-ge       //大于等于

-le        //小于等于


命令的逻辑关系:

在 linux 中命令执行状态:0 为真,其他为假  。

$?  是显示最后命令的退出状态,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


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

关键词: shell

相关推荐

Linux系统文件权限隐藏的细节深入分析

嵌入式系统 2007-05-16

Linux基础系列之判断符在shell中的使用方式

40个简单但有效的LinuxShell脚本示例

2023-08-15

Linux基础命令之: Linux常用命令

总结六条对我们学习Linux系统有用的忠告

嵌入式系统 2016-09-16

linux - Advanced Bash Shell Scripting Guide

busybox 详解

嵌入式系统 2010-06-08

为uCOS51 增加Shell 界面

如何用Shell病毒技术感染Linux脚本程序

嵌入式系统 2007-05-17

uCOS51 重入问题的解决

资源下载 2007-02-16

为ucos51增加shell界面

Linux_24学时教程06

资源下载 2007-02-16

Shell命令小技巧

嵌入式系统 2016-09-12

Linux Shell简介

嵌入式系统 2010-05-27

Linux系统下Shell编程

嵌入式系统 2012-07-31
更多 培训课堂
更多 焦点
更多 视频

技术专区