Shell编程之条件语句与case语句

目录

1.条件测试

1.1 文件测试

1.2 整数测试

1.3 字符串测试

1.4 逻辑测试

2.if语句

2.1 单分支if语句

2.2 双分支if语句

2.3 多分支if语句

3.case分支语句


1.条件测试

test命令

Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0(真true)时表示成功,返回值为非0值(假false)时表示失败或异常。
test 命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为 0 表示条件成立)。

示例:

1.1 文件测试

文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。

常用的操作符


(1)用test命令测试

(2)用【条件表达式】测试

1.2 整数测试

整数值比较指的是根据给定的两个整数值,判断第一个数与第二个数的关系,如是否大于、等于、小于第二个数。整数值比较的常用操作选项如下,使用时将操作选项放在要比较的两个整数之间。

格式:
test 整数1 选项 整数2 
[ 整数1 选项 整数2 ]

(1)用test命令测试

(2)用【条件表达式】测试

(3)支持变量表示

(4)运算表达式判断,[[ 运算表达式 选项 整数]]        

1.3 字符串测试

字符串比较通常用来检查用户输入、系统环境等是否满足条件,在提供交互式操作的shell脚本中,也可用来判断用户输入的位置参数是否符合要求。

格式:
test “字符串1” 选项 “字符串2” 
[ “字符串1” 选项 “字符串2” ]
[[ "字符串1" =~ “字符串2” ]]

操作符:

符号说明
=字符串内容相同
!=字符串内容不相同,!表示相反
-z字符串内容为空
-n检查是否有字符串
=~判断包含效果,加两个[]

1.4 逻辑测试

逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同条件时,判断是根据这些条件同时成立还是只要有其中一个成立等情况,需要有一个测试过程。

常用的测试操作符

!


$$

||

补充:

1.三元运算符

条件表达式?值1:值2  
JAVA C三元运算符:当条件表达式成立则取值1,不成立则取值2

2.[ 表达式1 ] && 命令1 || 命令2   

如果表达式1条件成立则执行命令1,如果表达式1条件不成立则命令2

3.[ 表达式1 ] || 命令1 

如果表达式1条件成立不会执行或运算符后面的命令1,如果表达式1条件不成立则会执行或运算符后面的命令1

4.判断进程是否正在运行的方法

systemctl status 进程服务
netstat -ln(t/u)p | grep 进程名/:端口
ss -lntp | grep 进程名/:端口
lsof -i :端口
ps -elf | grep 进程名 | grep -v "grep" | wc -l
pidof 进程名 | wc -w
killall -0 进程名

2.if语句

2.1 单分支if语句

单分支if语句:对于单分支的选择结构,只有在==“条件成立”时才会执行相应的代码==,否则不执行任何操作。

示例:


2.2 双分支if语句

对于双分支的选择结构,要求针对“条件成立”“条件不成立”两种情况分别执行不同的操作。

示例:

2.3 多分支if语句

多分支结构能够根据多个互斥的条件分别执行不同的操作,实际上等同于嵌套使用的if语句。


案例:

案例:判断一个输入的内容是否为整数,如是整数再判断是基数还是偶数

-

3.case分支语句



案例1:

案例2:

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

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

相关文章

找最大数字-第12届蓝桥杯国赛Python真题解析

[导读]:超平老师的Scratch蓝桥杯真题解读系列在推出之后,受到了广大老师和家长的好评,非常感谢各位的认可和厚爱。作为回馈,超平老师计划推出《Python蓝桥杯真题解析100讲》,这是解读系列的第60讲。 找最大数字&#…

你会拧螺丝吗?来看看如何拧紧螺丝?——SunTorque智能扭矩系统

智能扭矩系统-智能拧紧系统-扭矩自动控制系统-SunTorque 螺丝拧紧看似简单,却是一门需要技巧和耐心的技术活。很多人可能会认为,只要把螺丝旋进孔里,用力拧紧就可以了。但实际上,拧紧螺丝的过程远不止如此。在这篇文章中&#xf…

FPGA+DDR+SERDES+USB3.0单向传输机方案,数据只能单向传输,避免反向攻击,确保系统安全

FPGADDRSERDESUSB3.0方案,设备包含发送端接收端,物料上采用光纤通讯,数据只能单向传输,避免反向攻击,确保系统安全 客户应用:高安全、高可靠性要求的场景 主要性能: 1.支持USB3.0传输,实测可达到350MB/s 2.…

做安卓应用开发的我,转前端开发了

距离转前端开发已经快3个月了,现在自己也慢慢的熟悉了开发。 在2月份的时候。领导找我们移动小组的谈话,主要是关于转前端或者后端的问题。由于公司移动端的选型,对安卓原生的需求降低,问下我们转其他开发的需求。 我毫不犹豫的选…

【C++】滑动窗口:最大连续1的个数

1.题目 2.算法思路 其实在做这道题的时候并不需要真的把0翻转成1,只需要找到最长的子数组且该子数组中0的个数不大于K,就可以了! 当然我们首先想到的是暴力穷举法: 找到所有符合题意的子数组,跳出最长的那个就可以了…

Spring AI实战之一:快速体验(OpenAI)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于Spring AI Spring Boot、Spring Cloud、Spring Data,作为一名Java程序员,相信您对这些概览早已耳熟能详,或者天天在用…

Django中如何让页面之间建立关系

今天给大家讲解两种让页面建立联系的方式 一、重定向 二、表单提交 先看第一种方式,重定向 首先需要了解客户端发起请求的过程 1、客户端向服务端发起请求,比如请求地址是:http://127.0.0.1:8000/lili/submit/ 2、程序根据路由找到视图函数 3、执行视…

sqlserver中替换空格和换行

sqlserver 中换行符,如下: sql语句如下(只是在window系统中): //替换换行-使用char(10)或者char(13) select REPLACE(F_CNKITitle ,char(10),) title from tzkj_CNKIContent tc where --F_CnkiContentID ffdc7412-41…

AI智剪新风尚:一键操作,批量视频剪辑轻松入门

随着科技的飞速进步,人工智能(AI)已逐渐渗透到我们生活的各个领域,其中,AI视频剪辑技术的出现,为视频制作带来了革命性的变革。如今,一键操作、批量处理的AI智剪正成为视频剪辑的新风尚,让剪辑工作变得前所…

Mysql进阶-索引篇

Mysql进阶 存储引擎前言特点对比 索引介绍常见的索引结构索引分类索引语法sql分析索引使用原则索引失效的几种情况sql提示覆盖索引前缀索引索引设计原则 存储引擎 前言 Mysql的体系结构: 连接层 最上层是一些客户端和链接服务,主要完成一些类似于连接…

访问网络附加存储:nfs

文章目录 访问网络附加存储一、网络附加存储1.1、存储类型1.3、通过NFS挂载NAS1.4、NFS挂载过程服务端客户端 二、实验:搭建NFS服务端及挂载到nfs客户端服务端客户端测试命令合集服务端客户端 访问网络附加存储 一、网络附加存储 1.1、存储类型 DAS:Di…

零代码编程:用Kimichat从PDF文件中批量提取图片

一个PDF文件中,有很多图片,想批量提取出来,可以借助kimi智能助手。 在借助kimi智能助手中输入提示词: 你是一个Python编程专家,要完成一个网页爬取Python脚本的任务,具体步骤如下: 打开文件夹…

2024年融资融券利率最新变化,又降低了?

最近有很多朋友在问我问融资融券的业务,都是比较关心这个利率的问题。确实,做融资融券最重要的利率,利率低会节省很大一笔资金,今天在这边给大家对接一个上市券商,可以给到大家万一的交易佣金和5%的融资利率&#xff0…

乡村振兴规划设计一站式资料大全,能为乡村振兴从业者带来什么帮助?

乡村振兴规划设计一站式资料大全对于乡村振兴从业者来说,具有非常重要的帮助作用。这种资料大全通常包含了从政策解读、市场分析、规划设计、到实施策略等各个方面的详尽信息,能够极大地提升从业者的工作效率和专业能力。 具体来说,乡村振兴规…

Python selenium

1.搭建环境 1.安装: pip install msedge-selenium-tools 不要使用pip install selenium,我的电脑上没法运行 2.下载驱动 Microsoft Edge WebDriver |Microsoft Edge 开发人员 edge浏览器点设置---关于即可找到版本号,一定要下载对应版…

实践精益理念:精益生产培训助力企业持续增长

在日益激烈的市场竞争中,企业如何寻找持续增长的动力,提升整体创新能力和核心竞争力?张驰咨询通过多年来的深入研究和实践,结合众多企业的实际情况,带来了精益生产培训的全新视角。 在近期举办的一次精益生产培训中&am…

五种算法(BWO、RUN、SO、HO、GWO)求解复杂城市地形下无人机路径规划,可以修改障碍物及起始点(MATLAB)

一、算法介绍 (1)白鲸优化算法BWO 参考文献:Zhong C, Li G, Meng Z. Beluga whale optimization: A novel nature-inspired metaheuristic algorithm[J]. Knowledge-Based Systems, 2022, 109215. (2)龙格-库塔优化…

服务器数据恢复—RAID5磁盘阵列两块盘离线的数据恢复过程

服务器故障: 服务器中有一组由多块硬盘组建的raid5磁盘阵列,服务器阵列中2块硬盘先后掉线导致服务器崩溃。 服务器数据恢复过程: 1、将故障服务器中所有磁盘编号后取出,由硬件工程师对掉线的两块磁盘进行物理故障检测&#xff0c…

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备,用于在局域网(LAN)中转发数据帧。它工作在OSI模型的第二层,即数据链路层。二层交换机通过学习和维护MAC地址表,实现了数据的快速转发和广播域的隔离。 实…

java数据结构之数组系统了解

1.数组介绍 数组就是一个存储数据的容器,容器的长度固定、存储元素的数据类型固定。 跟变量加以区分:变量也可以存储数据,但是只能存一个值。当要存的数据比较多的时候,用变量就不方便了。我们就可以使用数组来存储。 1.1数组…