论shell之条件语句-if语句、case语句

news2024/12/27 1:56:01

目录

一:条件测试

1.文件测试

2.常见的测试操作符

 3.整数值比较

​4.字符串比较

​5. 逻辑测试

二:if语句

1.单分支结构

 2.单分支结构实例

3.双分支结构 

  4.双分支结构实例

 5.多分支结构

 6.多分支机构实例

 7.嵌套if语句实例

 三:case语句

1.case多分支结构

 2.case多分支结构实例

总结:


一:条件测试

1.文件测试

测试表达式是否成立,若成立返回0,否则返回其他数值

格式1:test 条件表达式
格式2:[ 条件表达式 ]

2.常见的测试操作符

操作符描述
-d判断是否为目录
-f判断是否为文件
-e判断是否为目录或文件
-r判断是否有读权限
-w判断是否有写权限
-x判断是否有执行权限
-L判断是否为链接文件
-b判断是否为设备文件
-c判断是否为字符设备
-s判断文件大小是否为空

注:中括号内两端必须要有空格 

 3.整数值比较

[ 整数1 操作符 整数2 ]

常用的测试操作符

操作符描述
-eq(equal)等于
-nq (not equal)不等于
-lt (lesser than)小于
-le (lesser or equal)小于或等于
-gt (greater than)大于
-ge (greater or equal)大于或等于

注:英文操作符是专门用于整数比较的

 4.字符串比较

格式1:[ 字符串1 = 字符串2 ]
格式2:[ -z 字符串 ]

=:字符串内容相同
!=:字符串内容不同,!取反
-z:字符串内容为空 

注:符号操作符可用于整数比较和字符串比较

 5. 逻辑测试

格式1:[ 表达式1 ] 操作符 [ 表达式2 ] ...
格式2:命令1 操作符 命令2 ...

常用的测试操作符:
-a或&&:逻辑与,且的意思
-o或||:逻辑或,或者的意思
!:逻辑非,否的意思 

二:if语句

1.单分支结构

if 条件语句
 then 命令
fi 

 2.单分支结构实例

问题一:9大于5,输出ok

问题二:判断/opt目录下有没有abc.sh文件,如果没有就创建

 

3.双分支结构 

if 条件
 then 命令1
 else 命令2
fi 

 

  4.双分支结构实例

输入一个数字,判断奇偶数

 5.多分支结构

if 条件1
 then 命令1
 elif 条件2
   then 命令2
 else 命令3
fi   

 6.多分支机构实例

 问题:将全班的分数划分等级。A:90-100、B:80-89、C:70-79、D:60-69、60以下显示不及格

 

 7.嵌套if语句实例

整数比较,如果输入字符串,显示输入错误

 

 三:case语句

1.case多分支结构

case语句格式:
case 变量名称 in
模式1)
	命令1
;;             //表示命令结束
模式2)
	命令2
;;
*)		//默认语句,
        命令3    //可不写
esac            //结尾反着写

 2.case多分支结构实例

按等级划分成绩A:85-100、B:70-84、C:60-69,其他的分数则叫家长

 

总结:

1.在shell脚本中我们常用[]去进行判断,而不是用test
2.在判断中进行数值比较需要使用eq、gt等操作符,而不能使用><
3.在实际生产中if单支语句用的很少,常用的为if双分支和多分支较多
4.case语句常用于服务的启动 

 

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

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

相关文章

2023企业服务的关键词:做强平台底座

作者 | 曾响铃 文 | 响铃说 4月下旬&#xff0c;软件行业相关的大会紧锣密鼓地开了好几场&#xff0c;不仅有政府主办的2023中国国际软件发展大会、中国软件创新发展大会&#xff0c;也有用友、浪潮等服务商举办的品牌活动&#xff0c;让软件业的话题一直保持热度。 以用友为…

十大排序算法简单总结与对比

假设排序均从小到大排序 排序算法工作原理平均时间复杂度最坏时间复杂度空间复杂度是否稳定排序冒泡排序把相邻元素两两比较&#xff0c;若左侧的元素大于右侧的元素&#xff0c;则交换&#xff0c;否则不交换。&#xff08;每一轮最大的会跑到最右边&#xff09;O(&#xff0…

VGA协议实践

文章目录 前言一、VGA接口定义与传输原理1、VGA接口定义2、传输原理3、不同分辨率对应不同参数 二、Verilog编程1、VGA显示彩色条纹2、VGA显示字符3、输出一幅彩色图像4、Quartus操作1、添加PLL核2、添加ROM核 三、全部代码四、总结五、参考资料 前言 VGA的全称是Video Graphi…

VBA最基础的趣味速成练习--VBA资料

很多朋友想学VBA&#xff0c;但是苦于无处入手&#xff0c;我特意花了几天时间&#xff0c;做了一个VBA速成练习表格 能让你快速上手VBA&#xff0c;感受到VBA的神奇之处&#xff0c;相信我们日常使用表格的朋友会非常喜欢它的&#xff0c; 下面是我们的表格界面&#xff0c;…

选择营销自动化软件时的3个常见错误

做出投资营销自动化软件的决定是一个重大决定&#xff0c;可能很难知道从哪里开始&#xff0c;尤其是当市场上有这么多选择时。选择正确的自动化软件可能是拥有良好的营销运营与拥有低效营销团队之间的区别。在这篇博文中&#xff0c;我们将讨论人们在选择营销自动化软件时最常…

Flink之TaskManager内存解析

一、CK失败 Flink任务的checkpoint操作失败大致分为两种情况&#xff0c;ck decline和ck expire: &#xff08;1&#xff09;ck decline 发生ck decline情况时&#xff0c;我们可以通过查看JobManager.log或TaskManager.log查明具体原因。其中有一种特殊情况为ck cancel&…

排序 - 选择排序(Selection sort)

文章目录 选择排序介绍选择排序实现选择排序的时间复杂度和稳定性选择排序时间复杂度选择排序稳定性 代码实现核心&总结 每日一道算法&#xff0c;提高脑力。第四天&#xff0c;选择排序。 选择排序介绍 它的基本思想是: 首先在未排序的数列中找到最小(or最大)元素&#…

Shiro详解(超全面)

目录: 一、简介二、Shiro的整体架构1、Subject2、Security Manager3、Cryptography4、Authenticator5、Authorizer6、realm7、sessionManager8、SessionDAO9、CacheManager 三、入门案例四、认证流程1、认证流程2、常见异常 五、授权流程1、授权流程2、自定义realm实现授权 六、…

JavaScript日期库之date-fn.js

用官网的话来说&#xff0c;date-fn.js 就是一个现代 JavaScript 日期实用程序库&#xff0c;date-fns 为在浏览器和 Node.js 中操作 JavaScript 日期提供了最全面、但最简单和一致的工具集。那实际用起来像它说的那么神奇呢&#xff0c;下面就一起来看看吧。 安装 安装的话就…

深度学习 -- pytorch 计算图与动态图机制 autograd与逻辑回归模型

前言 pytorch中的动态图机制是pytorch这门框架的优势所在&#xff0c;阅读本篇博客可以使我们对动态图机制以及静态图机制有更直观的理解&#xff0c;同时在博客的后半部分有关于逻辑回归的知识点&#xff0c;并且使用pytorch中张量以及张量的自动求导进行构建逻辑回归模型。 …

Springboot 自动装配流程分析

目录 1.基础知识&#xff1a; 2.具体代码执行流程 3.流程总结&#xff1a; 4.参考文章&#xff1a; 1.基础知识&#xff1a; springboot的自动装配是利用了spring IOC容器创建过程中的增强功能&#xff0c;即BeanFactoryPostProcessor&#xff0c; 其中的ConfigurationCla…

【JavaEE】SpringBoot的日志

目录 日志作用 SpringBoot日志框架 日志打印 日志级别 类型 作用 修改级别 日志永久化 配置日志文件目录 配置日志文件名 简化日志打印和永久化——lombok 日志作用 问题定位&#xff1a;可以帮助开发人员快速找到问题出现的位置系统监控&#xff1a;可以把系统的运…

你不知道的node.js小知识——使用nvm管理node版本及node与npm版本对应关系详解

一、下载和安装nvm管理包 &#xff08;1&#xff09;下载链接 https://github.com/coreybutler/nvm-windows/releases (我选的是nvm-setup.exe) &#xff08;2&#xff09;解压安装 &#xff08;2次选择文件要安装的目录 第一次是nvm 第二次是node.js&#xff09; &#xff08;…

01.DolphinScheduler集群搭建

文章目录 关于Apache DolphinScheduler简介特性简单易用丰富的使用场景High ReliabilityHigh Scalability 软硬件环境建议配置1. Linux 操作系统版本要求2. 服务器建议配置生产环境 3. 网络要求4. 客户端 Web 浏览器要求 官网地址 单机部署(没啥用)前置准备工作启动 DolphinSch…

J - Playing in a Casino

题意&#xff1a;相当于比大小的赌博计算赌徒一共需要支出多少赌资 比大小的规则很简单&#xff0c;是 在这个游戏中&#xff0c;有一个套牌由n卡。每张卡都有m数字写在上面。每个n玩家从一副牌中只收到一张牌。 然后所有玩家成对玩&#xff0c;每对玩家只玩一次。因此&#x…

SpringBoot 中 4 种常用的数据库访问方式

SpringBoot 中常用的数据库访问方式主要有以下几种&#xff1a; SpringBoot 是一个非常流行的 Java 开发框架&#xff0c;它提供了大量的开箱即用的功能&#xff0c;包括数据库访问。在开发过程中&#xff0c;我们经常需要使用数据库&#xff0c;因此选择一种合适的数据库访问…

Day2_vue集成elementUI完善布局

上一节&#xff0c;实现了从O到vue页面主体框架的搭建&#xff0c;这一节补充完善搜索框&#xff1b;新增、删除、导入、导出等按钮&#xff1b;表格设置&#xff1b;分页&#xff1b;面包屑的实现&#xff01; 目录 搜索框 新增删除、导入、导出按钮 表格设置 设置边框&a…

记录安装Nodejs和HBuilderX搭建、部署微信小程序开发环境(一)

文章目录 1 前言2 注册小程序账号3 安装微信开发者工具4 安装Nodejs和HBuilderX4.1 windows用户安装Nodejs4.2 macos/linux用户安装Nodejs4.3 安装HBuilder X 5 创建项目5.1 新建一个项目5.2 进行基本配置 6 HBuilderX同步微信开发者工具6.1 打开服务端口6.2 调用微信开发者工具…

PHP初识

php简介 PHP全称超文本预处理语言&#xff0c;是在服务器端执行的脚本语言&#xff0c;是一种简单的&#xff0c;面向对象的开源脚本语言PHP脚本可以让Web开发人员快速的书写动态生成的网页 PHP脚本以<?php开始&#xff0c;以?>结束 <?php echo "hello world&…

Visual Studio调试代码教学

本篇博客主要讲解程序员最应该掌握的技能之一——调试。我个人认为&#xff0c;学习编程&#xff0c;有2件事情非常重要&#xff0c;一是画图&#xff0c;一是调试。下面我会以Visual Studio 2022为例&#xff08;VS的其他版本大同小异&#xff09;&#xff0c;演示如何调试一个…