shell编程(四)—— 运算符

和其他编程语言一样,bash也有多种类型的运算符,本篇对bash的相关运算符做简单介绍。

一、运算符

1.1 算术运算符

常见的算术运算符,如加(+)、减(-)、乘(*)、除(/)、取余(%)、赋值(=)、相等(==)、不相等(!=)。
bash中使用expr 来进行算术运算。如将算术表达式放在方括号之间,需要有空格。

x=15
y=30val=`expr ${x} + ${y}`
echo "${x} + ${y} = ${val}"if [[ ${x} != ${y} ]]
thenecho "${x} != ${y}"
fi

在这里插入图片描述

1.2 关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字。

常用关系运算符如下

运算符说明
-eq检测两个数是否相等
-ne检测两个数是否不相等,不相等返回 true
-gt检测左边的数是否大于右边的
-lt检测左边的数是否小于右边的
-ge检测左边的数是否大于等于右边的
-le检测左边的数是否小于等于右边的
x=10
y=30if [[ ${x} -lt ${y} ]]
thenecho "${x} -lt ${y}: x 小于 y"
fi

在这里插入图片描述## 1.3 布尔运算符
如下列出常用的布尔运算符

运算符说明
非运算
-o或运算,
-a与运算,&& 也表示与运算
x=10
y=30if [[ ${x} -lt 20 && ${y} -gt 20 ]]
thenecho "${x} 小于20 且 ${y}大于20"
fiif [[ ${x} -lt 20 || ${y} -lt 20 ]]
thenecho "${x} 小于20 或 ${y}小于20"
fiif ! [[ ${x} -eq 20 ]]
thenecho "${x} 不等于20"
fi

在这里插入图片描述

1.4 字符串运算符

常用字符串运算符如下:

运算符说明
=检测两个字符串是否相等
!=检测两个字符串是否不等
-z检测字符串长度是否为0
-n检测字符串长度是否不为0
str检测字符串是否为空
x="xiaoyuzhou"
y=""if [[ -z ${x} ]]
thenecho "-z ${x} 字符串长度为0"
elseecho "-z ${x} 字符串长度不为0"
fiif [[ -n ${y} ]]
thenecho "-z ${y} 字符串长度不为0"
elseecho "-z ${y} 字符串长度为0"
fiif [[ ${y} ]]
thenecho "-z ${y} 字符串不为空"
elseecho "-z ${y} 字符串为空"
fi

在这里插入图片描述

1.5 文件测试运算符

文件测试运算符用于检测文件的各种属性

操作符说明
-b file检测文件是否为块设备文件
-c file检测文件是否是字符设备文件
-d file检测文件是否是目录
-f file检测文件是否是普通文件(非目录,非设备文件)
-r file检测文件是否可读
-w file检测文件是否可写
-x file检测文件是否可执行
-s file检测文件是否为空
-e file检测文件(或目录)是否存在

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/851142.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【网络架构】Nginx

目录 一、I/O模型 1.1 Linux 的 I/O 1.2 零拷贝技术 1.3 网络IO模型 1.3.1 阻塞型 I/O 模型(blocking IO)​编辑 1.3.2非阻塞型 I/O 模型 (nonblocking IO)​编辑 1.3.3 多路复用 I/O 型 ( I/O multiplexing )​编辑 1.3.4 信号驱动式 I/O 模型 …

Python 学习flask创建项目

1、使用pycharm创建flask项目 2、运行访问地址 3、可以看到访问地址内容 4、可以增加路由,尝试访问获取参数

智能电网与微电网:引领电力未来的创新力量

随着能源需求持续增长和环保压力日益加大,电力行业正面临前所未有的挑战与机遇。在这一背景下,智能电网和微电网作为新兴的技术应用方向,以其独特的优势和潜力,正逐步成为推动电力领域可持续发展的关键力量。 智能电网&#xff0…

【车载开发系列】MCU选型

【车载开发系列】MCU选型 【车载开发系列】MCU选型 【车载开发系列】MCU选型一. 重要概念二. MCU选型的风险风险1风险2 三. MCU选型要点四. MCU选型维度五. MCU 选型需要考虑的因素1)ROM/RAM2)速度/主频3)分析外设需求4)工作电压(…

设计模式- 责任链模式(行为型)

责任链模式 责任链模式是一种行为模式,它为请求创建一个接收者对象的链,解耦了请求的发送者和接收者。责任链模式将多个处理器串联起来形成一条处理请求的链。 图解 角色 抽象处理者: 一个处理请求的接口,可以通过设置返回值的方…

codesys【CAN总线】

1下载设备描述文件: 必须下载设备描述文件,要不然编程软件无法正确组态。 根据实际设备【品牌】去官网搜索下载。 以 DMA882-CAN 为例 CAN的设备描述文件是【.eds】的扩展名 安装设备描述文件。 2添加CAN总线: 1添加【CAN总线】&#xff1a…

同盾中文点选验证码识别方法

中文验证码一直是识别的难题,首先他分类的种类很多,常见中文都有3500个,而且一般中文验证码都会有变形,导致每一个文字都需要大量训练样本。假设每一个汉字样本需要100个,100350035万个样本,所以标记的样本…

excel拖拽怎么使单元格序号不递增

拖拽下来不仅不递增,而且右下角没有倒三角可以设置改变,(即没有下图这个) 则,可以采用以下方法 excel数值拖拽不递增还有一个更快更快捷的方法,这就运用到了excel快捷键,我们把鼠标放到单元格的…

IP分片的隐患,以及TCP分片

好的,我们来用一个生活中的例子更详细地解释 MTU、MSS,以及 IP 和 TCP 分片。 MTU 和 MSS 的概念 MTU(Maximum Transmission Unit,最大传输单元): 假设你搬家,需要用卡车搬运家具。 卡车的最…

Hadoop 2.0:主流开源云架构(一)

目录 一、引例(一)问题概述(二)常规解决方案(三)分布式下的解决方案(四)小结 自从云计算的概念被提出,不断地有IT厂商推出自己的云计算平台,但它们都是商业性…

Suno小技巧大揭秘,不会这些技巧别说你懂AI音乐

Suno是一个强大的AI音乐生成工具,它不仅可以帮你快速生成音乐,还能精确地根据你的需求进行调整。无论你是音乐小白还是专业音乐人,这篇文章将揭示一些鲜为人知的Suno技巧,帮助你最大化利用这个工具的潜力。 技巧一:精准…

解读下/etc/network/interfaces配置文件

/etc/network/interfaces 是一个常见的网络配置文件,通常在 Debian 及其衍生版本的 Linux 发行版中使用。该文件用于配置网络接口和网络连接参数,允许用户手动设置网络连接的属性,包括 IP 地址、子网掩码、网关、DNS 服务器等。 以下是一个可…

基于JSP的班级同学录网站

你好呀,我是计算机学长猫哥!如果有相关需求,文末可以找到我的联系方式。 开发语言:Java 数据库:MySQL 技术:JSP技术 工具:IDEA/Eclipse、Navicat、Maven 系统展示 首页 个人中心 同学录管…

51单片机独立按键控制LED灯,按键按一次亮,再按一次灭

1、功能描述 独立按键控制LED灯,按键按一次亮,再按一次灭 2、实验原理 轻触按键:相当于是一种电子开关,按下时开关接通,松开时开关断开,实现原理是通过轻触按键内部的金属弹片受力弹动米实现接通和断开;…

网络网络层之(6)ICMPv6协议

网络网络层之(6)ICMPv6协议 Author: Once Day Date: 2024年6月2日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文章可参考专栏: 通信网络技术_Once-Day的博客-CS…

WPF-UI布局

WPF布局元素有如下几个: Grid:网格。可以自定义行和列并通过行列的数量、行高和列宽来调整控件的布局。StackPanel:栈式面板。可将包含的元素在竖直或水平方向上排成一条直线,当移除一个元素后,后面的元素会自动向前移…

SpringAI(二)

大模型:具有大规模参数和复杂计算结构的机器学习模型.通常由深度神经网络构建而成,拥有数十亿甚至数千亿个参数.其设计目的在于提高模型的表达能力和预测性能,应对复杂的任务和数据. SpringAI是一个AI工程领域的应用程序框架 大概推出时间是2023年7月份(不确定) 目的是将S…

细说NLP中的Embedding层

文章目录 前言一、为什么要引入Embedding层二、Embedding层是怎么发挥作用的?三、感受Embedding的强大四、为什么理解Embedding的底层原理?总结 前言 在构建高效的自然语言处理模型时,Embedding层是不可或缺的组成部分。它不仅可以帮助我们捕…

14.《C语言》——【牛客网BC116—BC123题目讲解】

亲爱的读者,大家好!我是一名正在学习编程的高校生。在这个博客里,我将和大家一起探讨编程技巧、分享实用工具,并交流学习心得。希望通过我的博客,你能学到有用的知识,提高自己的技能,成为一名优…

标量、向量、矩阵、张量是什么?

参考视频:标量、向量、矩阵、张量-机器学习-李文哲AI人工智能培训_哔哩哔哩_bilibili 参考资料:深度学习基础:标量、向量、矩阵、张量_深度学习本质是矩阵-CSDN博客 标量是一个独立存在的数,比如线性代数中的一个实数5就可以被看…