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/diannao/25727.shtml

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

相关文章

OpenGauss数据库-4.表的创建、修改与删除

第1关:创建表 gsql -d postgres -U gaussdb -W passwd123123 create database testdb; \c testdb; passwd123123 create table test_table (test_id integer not null,test_info char(36)); 第2关:修改表 gsql -d testsb -U gaussdb -W passwd123123 …

Flink 基于 TDMQ Apache Pulsar 的离线场景使用实践

背景 Apache Flink 是一个开源的流处理和批处理框架,具有高吞吐量、低延迟的流式引擎,支持事件时间处理和状态管理,以及确保在机器故障时的容错性和一次性语义。Flink 的核心是一个分布式流数据处理引擎,支持 Java、Scala、Pytho…

DeepSORT(目标跟踪算法)中的马氏距离详解(很详细)

DeepSORT(目标跟踪算法)中的马氏距离详解(很详细) flyfish 马氏距离的公式是由印度统计学家【普拉萨纳钱德拉马哈拉诺比斯(Prasanta Chandra Mahalanobis)】)(好长的名字&#xff…

怎样快速获取Vmware VCP 证书,线上考试,voucher报名优惠

之前考一个VCP证书,要花大一万的费用,可贵了,考试费不贵,贵就贵在培训费,要拿到证书,必须交培训费,即使vmware你玩的很溜,不需要再培训了,但是一笔贵到肉疼的培训费你得拿…

哈希表与哈希扩容

一,哈希表 哈希表简单的理解:在记录的存储位置和它的关键字之间建立一个确定的对应关系f,使每个关键字和结构中一个唯一的存储位置相对应。 哈希表基于数组的,正因为数组创建后难于扩展某些哈希表被基本填满时,性能下…

JS类型转换面试题:[] == ![] 为true?

前言 OK,又是在学习的路上遇到了难点,今天拿来分享一哈。ok,话不多说,开始分享。 下面是一道面试题 console.log([]![])你觉得上面的值打印为多少?我告诉你,打印的结果是true。如果你是猜对的或者不会可以看看我对这…

Capture One 23 软件安装教程、附安装包下载

Capture One Capture One 23 是一款功能极为全面的图片处理软件,为用户提供了真正的逼真色彩处理和无缝衔接的编辑体验,以及业界最快的联机拍摄功能,可以满足用户在图像创作上的所有功能,如创作全景拼接大图、高级色彩调整、遮罩…

0605-JavaSE-单例模式-饿懒汉模式

​​​​​​​ 不能放在方法里面(因为每个线程调用都会在方法里面实例化一个locker对象,但不属于同一个对象),然后要用static修饰成静态变量才会起到效果 //单例设计模式 //饿汉模式:在加载类的时候就已经开始创建 /…

Opencv基本操作

Opencv基本操作 导入并使用opencv进行图像与视频的基本处理 opencv读取的格式是BGR import cv2 #opencv读取的格式是BGR import numpy import matplotlib.pyplot as plt %matplotlib inline图像读取 通过cv2.imread()来加载指定位置的图像信息。 img cv2.imread(./res/ca…

3-哈希表-51-四数相加 II-LeetCode454

3-哈希表-51-四数相加 II-LeetCode454 LeetCode: 题目序号454 更多内容欢迎关注我(持续更新中,欢迎Star✨) Github:CodeZeng1998/Java-Developer-Work-Note 技术公众号:CodeZeng1998(纯纯技术文&#xff…

基本表的定义:创建表、修改表、删除表

一、创建数据库与打开数据库 学生选课数据库 学生(学号,姓名,性别,出生时间,所在系) 课程(课程编号,课程名,先修课程号) 选课(学号&#xff0…

js调试过程中修改变量值

1.在想要变更的地方添加断点 2.添加监视表达式 3.执行网页代码,当执行到断点处则会停止 4.点击执行下一步,则会执行监视表达式

Linux下打印封装_统计函数执行时间_线程号时间戳打印

统计函数执行时间(多线程环境下统计结果不准) // 无返回值 #define FUNC_EXEC_TIME_NORET(fun,promote) ({ \ unsigned long long timeDelta 0; \ struct timespec t1 {0}; \ struct timespec t2 {0}; \ clock_gettime(CLOCK_MONOTONIC, &t1); \ …

高考分数查询结果自动推送至微信(卷II)

祝各位端午节安康!只要心中无结,每天都是节,开心最重要! 在上一篇文章高考分数查询结果自动推送至微信(卷Ⅰ)-CSDN博客中谈了思路,今天具体实现。文中将敏感信息已做处理,读者根据自…

React+TS前台项目实战(四)-- layout整体布局搭建

文章目录 前言一、Layout组件代码注释说明二、Content全局组件注释说明三、Header基础布局组件1. Header父级组件注释说明2. NavMenu导航子组件详细说明 四、效果展示总结 前言 本文主要讲Layout整体布局的构建以及全局内容盒子Content组件的使用。还包括了导航栏组件的基本封…

未来几年,同样的性能,推理功耗降低为现在的几万分之一,有可能吗

未来几年,同样的性能,推理功耗降低为现在的几万分之一,有可能吗 一.数据二.抓取LLM排行榜,相同的MMLU精度,模型参数量缩减倍数三.其它 有人说未来几年,推理功耗能降低为现在的几万分之一,好奇怎么能做到呢 一.数据 二.抓取LLM排行榜,相同的MMLU精度,模型参数量缩减倍数 import…

spool 管道 小文件 mknod

Spool File In SQL*PLUS in Multiple Small Files ? (Doc ID 2152654.1)​编辑To Bottom In this Document Goal Solution APPLIES TO: Oracle Database - Enterprise Edition - Version 10.2.0.1 to 12.1.0.2 [Release 10.2 to 12.1] Oracle Database Cloud Schema Service…

从零开始搭建Electron项目之运行例程

最好的学习方式就是:给一段能够运行的代码示例。 本文给出了例程资源,以及运行的步骤。 在国内开发electron有一点特别不好,就是如果不爬梯子,下载依赖容易出错。 一、例程资源 到如下路径下载例程到本地。 GitCode - 全球开发者…

32、matlab:基于模板匹配的车牌识别

1、准备工作 1)准备材料 车牌字符模板和测试的实验车牌 2)车牌字符模板 数字、字母和省份缩写 3)测试车牌 四张测试车牌 2、车牌识别实现(已将其嵌入matlab) 1)打开APP 找到APP 找到我的APP双击点开 2)界面介绍 包括&am…

【网络安全的神秘世界】web应用程序安全与风险

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 第一章:web应用程序安全与风险 web攻击基础知识 1、什么是web应用攻击 web攻击的本质,就是通过http协议篡改应用程序&#xff0…