shell之条件测试语句

news/2024/7/4 23:45:11/文章来源:https://www.cnblogs.com/shijunan2/p/18277143

shell之条件测试语句

目录
  • shell之条件测试语句
    • 一、test命令或[]中括号判断
      • 1、test命令
      • 2、[]中括号
        • 2.1 整数值比较[]
        • 2.2 实例操作
          • 2.2.1 查看系统内存是否超出预定值
          • 2.2.2 比较两个数的大小
        • 2.3 字符串比较
          • 2.3.1 案例:判断字符串是否相同
          • 2.3.2 案例:判断字符串是否为空
        • 2.4 逻辑测试(短路运算)
        • 2.5 双中括号(支持正则表达式和通配符)
    • 二、if语句
      • 1 、单分支结构
      • 2 、双分支结构
      • 3、 多分支结构
    • 三、case语句的结构

一、test命令或[]中括号判断

1、test命令

test的语法
test 条件表达式 [条件表达式]
test 选项 文件
选项 作用
-d 判断是否是目录
-f 判断是否是普通文件
-b 判断是否是块设备
-c 判断是否是字符设备
-e 判断是否存在
-a 判断是否存在
-r 判断是否有读的权限
-w 判断是否有写的权限
-x 判断是否有执行的权限

例子:

image-20240513171030016

2、[]中括号

image-20240514135046772

2.1 整数值比较[]

选项 意义
-eq 表示等于
-ne 不是不等于
-gt 表示大于
-ge 表示大于等于
-lt 表示小于
-le 表示小于等于

2.2 实例操作

2.2.1 查看系统内存是否超出预定值

image-20240514142045883

2.2.2 比较两个数的大小

image-20240514143724467

2.3 字符串比较

选项 作用
= 表示字符串相同
!= 表示字符串内容不相同
-z 表示字符串内容为空
-n 表示字符串存在
2.3.1 案例:判断字符串是否相同

image-20240514150349236

2.3.2 案例:判断字符串是否为空

image-20240514145940271

2.4 逻辑测试(短路运算)

选项 作用
-a或&& 逻辑与,“而且”的意思
-o或|| 逻辑或,“或者”的意思
! 逻辑否

合并用法:只需要记住一个

cmd1&&cmd2||cmd3:表示cmd1正确执行cmd2,如果cmd1错误就执行cmd3

image-20240514152554349

2.5 双中括号(支持正则表达式和通配符)

[[ expression ]] 用法
== 左侧字符串是否和右侧的PATTERN相同注意:此表达式用于[[ ]]中,PATTERN为通配符=~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配注意: 此表达式用于[[  ]]中;扩展的正则表达式

image-20240515160850395

image-20240515161231147

二、if语句

1 、单分支结构

if [判断]
then
命令序列
fi

2 、双分支结构

if [判断]
then
命令序列1
else
命令序列2
fi

3、 多分支结构

if[判断1]
then
命令序列1
elif[判断2]
then
命令序列2
elif[判断3]
then
命令序列3
.....(可以有多个)
else
命令序列4
fi

三、case语句的结构

case 变量 in
条件1)
命令序列1
;;
条件2)
命令序列2
;;
......
*)
不包含第一个变量内容与第二个变量内容的其他程序执行段
默认程序段
;;
esac 

1、实例

image-20240514172025641

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

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

相关文章

ikbc poker 2说明书

Poker II电子版说明书这是带6个dip开关,type-c接口,背后有理线槽支持侧向出线的一款poker。背后的金属铭牌型号为Poker Ⅱ。ikbc官网已经没有poker相关的内容了,说明书固件都无从下载。这份电子版说明书是找客服要的,这里存一下以作备份。原文档链接:ikbc_poker_II_说明书…

Django数据库

一、MySQL驱动程序安装 我们使用Django来操作MySQL,实际上底层还是通过python来操作的。因此我们想要用Django来操作MySQL,首先还是需要安装一个驱动程序。在Python3中,驱动程序有多种选择。比如pymysql以及mysqlclient等。这里我们就使用mysqlclient来操作。mysqlclient安装…

最后两次oop作业总结

1.前言 最后两次作业(即第七八次作业)大题目都是家居强电电路模拟程序,每次作业分别给了一个礼拜的时间去完成,题量较少,难度逐渐升高,以下为依次对两周题目集的知识点,题量和难度进行概述:第六次作业: 第六次作业只有一道题 家居强电电路模拟程序3,题目大概是输入设…

日志采集/分析

目录EFK1. 日志系统2. 部署ElasticSearch2.1 创建handless服务2.2 创建sts3. 部署kibana4. 部署ilogtail(docker-compose)4.1 编写docker-compose4.2 配置ilogtail采集4.3 查看容器采集的日志4.4 采集容器标准输出日志(可选)4.5 查看采集的容器日志5. 部署kafka5.1 kafka介绍…

AOD始终显示时间和信息(Dream)简析

AOD始终显示时间和信息(Dream)简析DreamManagerService启动在SystemServer的startOtherServices方法中会启动DreamManagerService服务这里是调用SystemServiceManager的startService方法显然,在SystemServiceManager的startService方法中首先将要启动的系统服务添加到其mSer…

操作系统——学习笔记(2)CPU虚拟化

学习黑皮书的一些呆瓜行为hhhhh

免费的攻击面管理平台-森罗

产品简介 森罗是有安科技推出的一款全新综合网络安全攻击面管理平台,集网络空间测绘与漏洞扫描于一体。森罗自带万象漏洞扫描器,与Nessus和Nuclei等许多产品一样,但它更现代,具有免等待的OOB测试策略、高级漏洞PoC IDE和强大的VDSL(漏洞域特定语言)引擎,使您能够轻松快速…

Fake权限验证小例子

前言 关于本地测试如何进行Fake权限验证 正文 在我们使用swagger调试本地接口的时候,我们常常因为每次需要填写token而耽误工作,不可能每次调试的时候都去本地测试环境请求一个token进行验证吧。上图可能是我们本地测试的时候需要填写的一个token位置,本地测试不方便。 那么…

41、linux-yum源管理-阿里云仓库配置

yum的管理1、清理原有的yum配置 把本地或者官方的/etc/yum.repos.d/路径下的所有repo配置文件移走确保/etc/yum.repos.d/这里没有其它文件2、下载配置阿里巴巴开源镜像站官网配置:https://developer.aliyun.com/mirror/在这个位置/etc/yum.repos.d/下载阿里云的yum源文件登陆…

vim基础使用

五、vim编辑器的使用 所有的Linux系统都默认有vi编译器,它就相当于Windows的记事本,当然,你也可以选择更好用的vim编译器,需要下载 yum install vim -y vim 有三种模式 使用vim filename wq!之后 这个命令如果filename不存在则 创建文件 [root@bogon opt]# vim zhanghaow…

【YOLOv8改进 - 注意力机制】NAM:基于归一化的注意力模块,将权重稀疏惩罚应用于注意力机制中,提高效率性能

**NAM: 提升模型效率的新颖归一化注意力模块,抑制非显著权重,结合通道和空间注意力,通过批量归一化衡量重要性。在Resnet和Mobilenet上的实验显示优于其他三种机制。源码见[GitHub](https://github.com/Christian-lyc/NAM)。**介绍摘要 识别较不显著的特征是模型压缩的关键。…

VP记录

我是真的红温了受打击了,他妈难受死了,遂记录这玩意儿,就算他妈没几个月就要退役。 ABC360 就是这场把我打击到了。之前15min切完ABCD,这回25min切B题,幽默🤡頑張って

视野修炼-技术周刊第90期 | 豆包AI IDE

① 豆包 MarsCode 正式发布 ② ECMAScript 2024 正式发布 ③ Mako 开源 - 蚂蚁的 Rust 力作 ④ CSDN批量搬运Github项目伪造开发者主页 ⑤ HTML 旋转图像实现示例 ⑥ 一组看着糙的组件库 ⑦ Chrome 126 中 DevTools 的新增功能 ⑧ 纯 CSS 实现环形文本欢迎来到第 90 期的【视野…

3.2

3.2 一键部署多台linux 1. 背景: 一般的机房的几十台甚至上百台电脑都需要统一部署操作系统。人工一个一个太费力,所以需要用到批量部署技术。 2. 实现原理:安装一台服务器后,通过交换机连接同一个网络方式还有结合自动应答文件的方式来实现。 ​ 网络拓扑图如下:这需要先…

ASRPRO语音控制开发板

近来想做语音控制,于是拼多多上淘了块语音控制开发板,记录下开发板相关的信息。 1.开发板信息 模块概述 开发板板载CH340K芯片,一根Type-C线就可以下载程序,并且开发板上有自动断电电路可以实现一键下载。 开发板需要外接喇叭,喇叭为PH2.0接口。 下图为开发板实物图开发板…

Prompt-Tuning、P-Tuning和Prefix-Tuning区别和代码实现【转】

原文:https://blog.csdn.net/weixin_43863869/article/details/134760405