当前位置: 首页 > news >正文

Linux shell编程学习笔记11:关系运算

Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、字符串、文件测试等多种运算。前面几节我们研究了  Linux shell编程 中的 字符串运算 和 算术运算,今天我们来研究 Linux shell编程中的的关系运算。

一、关系运算符功能说明

运算符说明备注
-eq检测两个数是否相等,相等返回 1(true),否则返回0(false)。equal
-ne检测两个数是否不相等,不相等返回1(true),否则返回0(false)。not equal 
-gt 检测左边的数是否大于右边的,如果是,则返回 1(true),否则返回0(false)。great than
-lt 检测左边的数是否小于右边的,如果是,则返回 1(true),否则返回0(false)。little than
-ge检测左边的数是否大于等于右边的,如果是,则返回 1(true),否则返回0(false)。great or equal
-le检测左边的数是否小于等于右边的,如果是,则返回 1(true),否则返回0(false)。little or equal

这些运算符与汇编语言中的相似。

关系运算符只支持数字或值为纯数字(包括负数)的字符串。

如果使用纯数字(包括负数)的字符串进行关系运算,返回值为0(false)。

二、关系运算实例

(一)操作数为数字

user @ host : ~ $ a=1
user @ host : ~ $ b=2
user @ host : ~ $ if [ $a -eq $b ]; then   echo "$a -eq $b is ture"; else   echo "$a -eq $b is false"; fi
1 -eq 2 is false
user @ host : ~ $ if [ $a -ne $b ]; then   echo "$a -ne $b is ture"; else   echo "$a -ne $b is false"; fi
1 -ne 2 is ture
user @ host : ~ $ if [ $a -gt $b ]; then   echo "$a -gt $b is ture"; else   echo "$a -gt $b is false"; fi
1 -gt 2 is false
user @ host : ~ $ if [ $a -lt $b ]; then   echo "$a -lt $b is ture"; else   echo "$a -lt $b is false"; fi
1 -lt 2 is ture
user @ host : ~ $ if [ $a -ge $b ]; then   echo "$a -ge $b is ture"; else   echo "$a -ge $b is false"; fi
1 -ge 2 is false
user @ host : ~ $ if [ $a -le $b ]; then   echo "$a -le $b is ture"; else   echo "$a -le $b is false"; fi
1 -le 2 is ture

(二)操作数为纯数字的字符串

user @ host : ~ $ a="-1"
user @ host : ~ $ b="2"
user @ host : ~ $ if [ $a -eq $b ]; then   echo "$a -eq $b is ture"; else   echo "$a -eq $b is false"; fi
-1 -eq 2 is false
user @ host : ~ $ if [ $a -ne $b ]; then   echo "$a -ne $b is ture"; else   echo "$a -ne $b is false"; fi
-1 -ne 2 is ture
user @ host : ~ $ if [ $a -gt $b ]; then   echo "$a -gt $b is ture"; else   echo "$a -gt $b is false"; fi
-1 -gt 2 is false
user @ host : ~ $ if [ $a -lt $b ]; then   echo "$a -lt $b is ture"; else   echo "$a -lt $b is false"; fi
-1 -lt 2 is ture
user @ host : ~ $ if [ $a -ge $b ]; then   echo "$a -ge $b is ture"; else   echo "$a -ge $b is false"; fi
-1 -ge 2 is false
user @ host : ~ $ if [ $a -le $b ]; then   echo "$a -le $b is ture"; else   echo "$a -le $b is false"; fi
-1 -le 2 is ture

(三)操作数为纯字母的字符串

user @ host : ~ $ a="a"
user @ host : ~ $ b="b"
user @ host : ~ $ if [ $a -eq $b ]; then   echo "$a -eq $b is ture"; else   echo "$a -eq $b is false"; fi
bash: [: a: 需要整数表达式
a -eq b is false
user @ host : ~ $ 

如果我们拿两个值相同的字符串来进行相等运算,结果会如何呢?

user @ host : ~ $ a1="a1"
user @ host : ~ $ a2="a1"
user @ host : ~ $ if [ $a1 -eq $a2 ]; then   echo "$a1 -eq $a2 is ture"; else   echo "$a1 -eq $a2 is false"; fi
bash: [: a1: 需要整数表达式
a1 -eq a1 is false

(四)操作数为算术表达式字符串

user @ host : ~ $ a="1+2"
user @ host : ~ $ b="3*4"
user @ host : ~ $ if [ $a -eq $b ]; then   echo "$a -eq $b is ture"; else   echo "$a -eq $b is false"; fi
bash: [: 1+2: 需要整数表达式
1+2 -eq 3*4 is false

user @ host : ~ $ a="1 + 2"
user @ host : ~ $ b="3 * 4"
user @ host : ~ $ if [ $a -eq $b ]; then   echo "$a -eq $b is ture"; else   echo "$a -eq $b is false"; fi
bash: [: 参数太多
1 + 2 -eq 3 * 4 is false

相关文章:

Linux shell编程学习笔记11:关系运算

Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、字符串、文件测试等多种运算。前面几节我们研究了 Linux shell编程 中的 字符串运算 和 算术运算,今天我们来研究 Linux shell编程中的的关系运算。 一、关系运算符功能说明 运算符说明…...

JS标准库

学习一门编程语言不仅是掌握其语法。同等重要的是学习其标准库,从而熟练掌握语言本身提供的所有工具。 1 定型数组 js常规数组与C和Java等较低级语言的数组类型还是有很大区别。ES6新增了定型数组,与这些语言的低级数组非常接近。 定型数组严格来说并…...

Android 12.0 hal层添加自定义hal模块功能实现

1. 前言 在12.0的系统rom定制化开发中,在 对hal模块进行开发时,需要通过添加自定义的hal模块来实现某些功能时,就需要添加hal模块的相关功能,接下来就来实现一个案例来供参考 接下来就来具体实现这个功能 2.hal层添加自定义hal模块功能实现的核心类 hardware\interfaces…...

如何理解vue声明式渲染

Vue.js中的声明式渲染是一种用来描述用户界面的方式,它强调“声明”应该如何渲染页面,而不需要关心底层的DOM操作。这与传统的命令式渲染方式,即手动控制DOM元素的创建、更新和销毁,形成了鲜明的对比。 理解Vue的声明式渲染的关键…...

【已解决】Vue全局引入scss 个别页面不生效 / 不自动引入全局样式

项目里配置了全局样式的引入,今天新建了 demo 页面去修改 element 的样式,发现全局的样式没有引入进来。 问题原因 在此页面 没有任何样式导致的 项目在编译的时候,会把 .vue 文件的样式抽离到单独的 css 文件中。 当该页面没有css代码的时…...

MySQL之双主双从读写分离

一个主机 Master1 用于处理所有写请求,它的从机 Slave1 和另一台主机 Master2 还有它的从 机 Slave2 负责所有读请求。当 Master1 主机宕机后, Master2 主机负责写请求, Master1 、 Master2 互为备机。架构图如下 : 准备 我们…...

使用eBPF加速阿里云服务网格ASM

背景 随着云原生应用架构的快速发展,微服务架构已经成为了构建现代应用的主要方式之一。而在微服务架构中,服务间的通信变得至关重要。为了实现弹性和可伸缩性,许多组织开始采用服务网格技术来管理服务之间的通信。 Istio作为目前最受欢迎的…...

大型数据集处理之道:深入了解Hadoop及MapReduce原理

在大数据时代,处理海量数据是一项巨大挑战。而Hadoop作为一个开源的分布式计算框架,以其强大的处理能力和可靠性而备受推崇。本文将介绍Hadoop及MapReduce原理,帮助您全面了解大型数据集处理的核心技术。 Hadoop简介 Hadoop是一个基于Google…...

LCR 095. 最长公共子序列(C语言+动态规划)

1. 题目 给定两个字符串 text1 和 text2,返回这两个字符串的最长 公共子序列 的长度。如果不存在 公共子序列 ,返回 0 。 一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符&#xff08…...

程序员不写注释:探讨与反思

一、为什么程序员不写注释 当程序员选择不写注释时,通常有一系列常见原因,这些原因可以影响他们的决策和行为。同时,这个决策可能会带来多方面的影响和后果。以下是详细阐述为什么程序员不写注释的常见原因以及这种决策可能导致的影响和后果…...

《论文阅读:Dataset Condensation with Distribution Matching》

点进去这篇文章的开源地址,才发现这篇文章和DC DSA居然是一个作者,数据浓缩写了三篇论文,第一篇梯度匹配,第二篇数据增强后梯度匹配,第三篇匹配数据分布。DC是匹配浓缩数据和原始数据训练一次后的梯度差,DS…...

免费chatGPT工具

发现很多人还是找不到好用的chatGPT工具,这里分享一个邮箱注册即可免费试用。 PromptsZone - 一体化人工智能平台使用 PromptsZone 与 ChatGPT、Claude、AI21 Labs、Google Bard 聊天,并使用 DALL-E、Stable Diffusion 和 Google Imagegen 创建图像&…...

数据分析基础:数据可视化+数据分析报告

数据分析是指通过对大量数据进行收集、整理、处理和分析,以发现其中的模式、趋势和关联,并从中提取有价值的信息和知识。 数据可视化和数据分析报告是数据分析过程中非常重要的两个环节,它们帮助将数据转化为易于理解和传达的形式&#xff0…...

settings.xml的文件配置大全

settings.xml 文件中最常配置的还是这几个标签 localRepository和mirrors settings.xml文件官方文档地址 <settings xmlns"http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"ht…...

极简c++(7)类的继承

为什么要用继承 子类不必复制父类的任何属性&#xff0c;已经继承下来了&#xff1b;易于维护与编写&#xff1b; 类的继承与派生 访问控制规则 一般只使用Public&#xff01; 构造函数的继承与析构函数的继承 构造函数不被继承&#xff01; 在创建子类对象的时候&…...

DOSBox和MASM汇编开发环境搭建

DOSBox和MASM汇编开发环境搭建 1 安装DOSBox2 安装MASM3 编译测试代码4 运行测试代码5 调试测试代码 本文属于《 X86指令基础系列教程》之一&#xff0c;欢迎查看其它文章。 1 安装DOSBox 下载DOSBox和MASM&#xff1a;https://download.csdn.net/download/u011832525/884180…...

047:mapboxGL本地上传shp文件,在map上解析显示图形

第047个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+mapbox中本地上传shp文件,利用shapefile读取shp数据,并在地图上显示图形。 直接复制下面的 vue+mapbox源代码,操作2分钟即可运行实现效果 文章目录 示例效果配置方式示例源代码(共117行)加载shapefile.js方式…...

Windows下DataGrip连接Hive

DataGrip连接Hive 1. 启动Hadoop2. 启动hiveserver2服务3. 启动元数据服务4. 启动DG 1. 启动Hadoop 在控制台中输入start-all.cmd后&#xff0c;弹出下图4个终端&#xff08;注意终端的名字&#xff09;2. 启动hiveserver2服务 单独开一个窗口启动hiveserver2服务&#xff0c;…...

Xshell7和Xftp7超详细下载教程(包括安装及连接服务器附安装包)

1.下载 1.官网地址&#xff1a; XSHELL - NetSarang Website 选择学校免费版下载 2.将XSHELL和XFTP全都下载下来 2.安装 安装过程就是选择默认选项&#xff0c;然后无脑下一步 3.连接服务器 1.打开Xshell7&#xff0c;然后新建会话 2.填写相关信息 出现Connection establi…...

ASP.net数据从Controller传递到视图

最常见的方式是使用模型或 ViewBag。 使用模型传递数据&#xff1a; 在控制器中&#xff0c;创建一个模型对象&#xff0c;并将数据赋值给模型的属性。然后将模型传递给 View 方法。 public class HomeController : Controller {public IActionResult Index(){// 创建模型对…...

HDMI转VGA转换器硬件设计实战:基于MX9291的电路实现

1. HDMI转VGA转换器的核心价值与应用场景 当你手头有一台只有VGA接口的老显示器&#xff0c;而电脑却只有HDMI输出时&#xff0c;MX9291芯片就是解决这个兼容性问题的钥匙。这种转换需求在企业和教育领域特别常见——很多会议室和教室的投影仪至今仍在使用VGA接口。我去年就帮朋…...

Harmonyos应用实例228:数学文化与数学史

10. 数学文化与数学史 功能简介:展示数学发展史上的重要事件、数学家及其贡献,通过时间轴和互动展示,介绍数学文化的发展历程。支持按时期、地区筛选,帮助学生了解数学的历史背景和文化价值。 ArkTS代码: // 定义类型接口 interface Mathematician {name: stringperiod…...

工业Python网关性能断崖式下降?实测发现:asyncio在ARM Cortex-A9上协程切换开销超预期237%,3种轻量替代架构对比报告

第一章&#xff1a;工业Python网关性能断崖式下降的现场诊断逻辑工业Python网关在连续运行数周后突发响应延迟激增、消息吞吐骤降50%以上&#xff0c;此类“断崖式”性能劣化往往非单一因素导致&#xff0c;需构建分层递进的现场诊断逻辑&#xff1a;从资源表象切入&#xff0c…...

科研人投稿破局:Paperxie AI 期刊写作,把「拒稿重写」变成「一次过审」

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/期刊论文https://www.paperxie.cn/ai/journalArticleshttps://www.paperxie.cn/ai/journalArticles 在学术圈&#xff0c;「写期刊论文」从来都不是敲字那么简单 —— 要贴合期刊收稿方向、要挖创新点、要卡…...

丹青识画系统助力PS软件插件开发:智能图像分析功能扩展

丹青识画系统助力PS软件插件开发&#xff1a;智能图像分析功能扩展 作为一名和设计工具打了十几年交道的“老炮儿”&#xff0c;我见过太多设计师朋友在创意构思和细节调整时陷入纠结。一张图&#xff0c;色彩搭配是否和谐&#xff1f;构图有没有更好的可能&#xff1f;很多时…...

语音转换技术全解析:从原理到实践的Retrieval-based Voice-Conversion-WebUI指南

语音转换技术全解析&#xff1a;从原理到实践的Retrieval-based Voice-Conversion-WebUI指南 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型&#xff01; 项目地址: https://gitcode.com/GitHub_Trending…...

RViz实战:如何用C++在ROS中动态切换不同形状的物体(含避坑指南)

RViz实战&#xff1a;如何用C在ROS中动态切换不同形状的物体&#xff08;含避坑指南&#xff09; 在机器人开发过程中&#xff0c;RViz作为ROS生态中的三维可视化利器&#xff0c;其核心价值在于让抽象的数据变得直观可见。而Marker消息系统则是实现这种可视化的关键桥梁——它…...

智能网联汽车(CAV)缩略语大全:从C-V2X到VRUCW,一文搞懂所有专业术语

智能网联汽车(CAV)术语全解析&#xff1a;从技术原理到场景应用 在智能交通系统快速发展的今天&#xff0c;智能网联汽车(Connected-Automated Vehicle, CAV)已经成为行业变革的核心驱动力。无论是汽车工程师、软件开发人员还是交通规划者&#xff0c;都需要掌握这一领域的关键…...

VMware Unlocker:在非苹果硬件上运行macOS虚拟机的完整解决方案

VMware Unlocker&#xff1a;在非苹果硬件上运行macOS虚拟机的完整解决方案 【免费下载链接】unlocker 项目地址: https://gitcode.com/gh_mirrors/unloc/unlocker VMware Unlocker是一个开源工具&#xff0c;专门解决在非苹果硬件上使用VMware虚拟机运行macOS系统时的…...

AI如何助力人力资源管理:从效率工具到战略伙伴的跃迁

去年某互联网大厂HR负责人跟我说&#xff0c;他们团队用AI筛选简历后&#xff0c;招聘周期从45天缩短到28天&#xff0c;但更让他意外的是——AI还帮他们发现了一个被忽视3年的优质候选人。这个案例折射出AI对人力资源管理的深层改变&#xff1a;不只是提速&#xff0c;更是让H…...