【Linux】Shell编程之条件语句

news/2024/5/2 18:23:55/文章来源:https://blog.csdn.net/h15162064289/article/details/130382009

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、条件测试操作作
    • 1.文件测试
    • 2.整数值比较
    • 3.逻辑测试
  • 二、if语句的结构
    • 1.单分支结构
    • 2.双分支结构
    • 3.多分支结构
  • 三、case多分支结构


一、条件测试操作作

test命令

  • 测试表达式是否成立,若成立返回0,否则返回其他数值
格式1: test 条件表达式
格式2:[ 条件表达式 ]

1.文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

  • -d :测试是否为目录 (Directory)
  • -e:测试目录或文件是否存在(Exist)
  • -f:测试是否为文件 (File)
  • -r:测试当前用户是否有权限读取 (Read)
  • -w:测试当前用户是否有权限写入 (Write)
  • -x:测试当前用户是否有权限执行 (eXcute)

2.整数值比较

[ 整数1 操作符 整数2 ]

常用的测试操作符

  • -eq:等于 (Equal)
  • ne:不等于(Not Equal)
  • gt:大于 (Greater Than)
  • lt:小于(Lesser Than)
  • le:小于或等于(Lesser or Equal)
  • ge:大于或等于 (Greater or Equal)

3.逻辑测试

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

常用的测试操作符

  • -a或&&:逻辑与,“而且”的意思
  • -o或||: 逻辑或,“或者”的意思
  • !: 逻辑否

二、if语句的结构

1.单分支结构

在这里插入图片描述
示例:
判断/opt目录下,有没有这个ztm.sh这个文件,如果没有创建

在这里插入图片描述
在这里插入图片描述

2.双分支结构

在这里插入图片描述

示例:
用if脚本检查用户家目录中的 test.sh 文件是否存在,并且检查是否有执行权限

vim test.sh                         #创建并编辑test.sh
#!/bin/bash                         #脚本解释器              
fi [ -e /opt/ztm.sh ]                #输入if条件,-e代表测试文件是否存在
then                                 #then代表然后,符合if条件的才可
if [ -x /opt/ztm.sh ]                #这边是嵌入if,在if循环中又嵌入一个if,-x测试文件权限是否可以执行
then echo "文件存在,有权限“            #若文件权限可执行,则输出文件存在,有权限
then else ”文件存在,无权限“            #若文件权限不可执行,则输出文件存在,不可执行
fi                                   #这个嵌入if的结束用fi结束
else ”文件不存在“                      #这个是我们初始if的不符合条件的项,不符合,则直接输出文件不存在,无需去检测权限
fi                                   #检测结束

在这里插入图片描述
在这里插入图片描述

3.多分支结构

在这里插入图片描述
在这里插入图片描述
示例1:
实验内容是一张0-100分的卷子,在各分段所给的分数评价
在这里插入图片描述
在这里插入图片描述
示例2:
提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,
如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,
男生进男生组,女生进女生组,如果输入错误请提示错误

在这里插入图片描述
在这里插入图片描述

三、case多分支结构

在这里插入图片描述
在这里插入图片描述
示例:
一张百分卷子,给个分段的学生打个评价
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

java版工程项目管理系统平台,助力工程企业实现数字化管理系统源代码

Java版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下: 首页 工作台:待办工作、消息通知、预警信息,点击可进入相应的列表 项目进度图表:选择(总体或单个)项目显示1…

php+vue网盘系统的设计与实现

该网盘系统的开发和设计根据用户的实际情况出发,对系统的需求进行了详细的分析,然后进行系统的整体设计,最后通过测试使得系统设计的更加完整,可以实现系统中所有的功能,在开始编写论文之前亲自到图书馆借阅php书籍&am…

webpack : 无法加载文件 D:\...\node-v18.16.0-win-x64\webpack.ps1,因为在此系统上禁止运行脚本

用idea打开项目时,安装webpack打包的包之后,由于组策略问题拒绝执行脚本 解决方法 1、cmd打开命令行。输入:powershell 出现 PS 证明已经进入组策略模式 2、输入:get-executionpolicy,查看策略 ​ 输入&#xff1a…

【JavaEE初阶】简单了解wait和notify方法~

目录 🌟1、wait() 🌟2、notify() 🌟1、wait() (1)wait()方法与notify()方法都是Object类中的方法。 (2)wait()是让线程等待一段时间,死等——>状态WAITING:没有时间限制的等待.…

使用 NutUI 搭建「自定义业务风格」的组件库 | 京东云技术团队

作者:京东零售 佟恩 本文介绍,如何使用 NutUI 组件库,搭建一套为专属业务风格的业务组件库。 NutUI 是一款京东风格的移动端组件库。NutUI 目前支持 Vue 和 React技术栈,支持Taro多端适配。 当下的实现方式 一般组件库&#xff…

【Python入门篇】——Python基础语法(标识符与运算符)

作者简介: 辭七七,目前大一,正在学习C/C,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: Python入门,本专栏主要内容为Python的基础语法,Python中的选择循环语句…

Unity 光照

\\\\\\\ Unity烘焙(Baking)是指将场景中的动态光照转换为静态贴图。在烘焙过程中,Unity会将场景中的光源、材质和对象等信息计算出来,并存储为贴图。当玩家进入场景时,Unity只需要读取这些预计算好的贴图或者数据文件&…

《创造》人生旅程

上个月读完的这本《创造》,发现作者是iPod的创造者,让我回想起我刚工作时买的iPod。iPod确是惊艳之作,那时我一个月挣1000元,竟毫不犹豫花了2000就买了,并一直伴随我直到进入智能手机时代。《创造》会写什么&#xff1…

VSCode作业1:猜数字游戏和简单计数器(包含完整代码)

目录 猜数字游戏 一、使用‘random’函数获取随机数 二、 分情况讨论输入值大小情况 三、HTML代码 四、CSS样式及运行效果 简单计数器(计时器) 一、使用‘setInterval’函数实现计数效果 二、使用’clearInterval‘函数实现暂停计数和重新计数效果 …

字符设备注册与注销

1、对于字符设备驱动而言,当驱动模块加载成功以后需要注册字符设备,同样,卸载驱动模 块的时候也需要注销掉字符设备。字符设备的注册和注销函数原型如下所示 static inline int register_chrdev(unsigned int major, const char *name,const…

Lucene和Solr和Elasticsearch区别,全文检索引擎工具包Lucene索引流程和搜索流程实操

文章目录 基本概念什么是全文检索技术全文检索的应用场景搜索引擎站内搜索(关注)文件系统的搜索 Lucene & solr & es介绍区别Solr与Lucene对比ES与Lucene的区别ES与Solr对比 Lucene实现全文检索的流程入门程序需求环境准备数据库脚本初始化Lucen…

arm 源码编译kernel 对比image zimage uimage vmlinux

一 源码编译kernel 下载交叉编译工具链 下载cc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz ,这是官网的。使用下面命令下载。 585 wget https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/gcc-linaro-4.9…

揭秘镭速传输点对点传输技术,NAT+Raysync强强组合

点对点传输是一种文件即时传输方式用于实现数据的快速联动,为所有客户端提供资源,包括带宽、存储空间、计算能力。点对点传输技术有很多应用,包括共享各种格式音频、视频、数据等。 在5G重新定义带宽,信息技术不断发展的今天&…

对标世界一流|亚马逊供应链管理经验借鉴

当前电商零售行业竞争日趋激烈,服务标准的提升、产品价格的竞争力等因素,导致企业经营成本持续上升,供应链的管理水平已经成为零售行业成败的关键。然而在电商零售行业的红海竞争中,亚马逊却始终保持着高速增长的态势,…

【Python】贪吃蛇 —— 无聊必备的小项目

作者主页:爱笑的男孩。的博客_CSDN博客-深度学习,活动,YOLO领域博主爱笑的男孩。擅长深度学习,活动,YOLO,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typecollect个人…

对标世界一流|弹性应对“供应链不确定性常态化” ——快消与重资产行业的经验互鉴

1963年,气象学家洛伦兹提出的“蝴蝶效应”表示:“一只蝴蝶在巴西扇动翅膀,有可能会在美国德克萨斯州引起一场龙卷风”。本文希望通过提供快消行业的先进实践,帮助重资产企业从“蝴蝶扇动翅膀”之前就开始行动,避免“龙…

如何裁剪图片大小尺寸?

如何裁剪图片大小尺寸?平时我们在工作或者学习的时候,会经常需要将图片上传到不同的网站或者平台上,然而上传的时候经常会受到尺寸的限制,有时候尺寸太大就需要变小,为了确保上传成功,我们需要将图片进行裁…

ChatGPT实现leetcode 刷题和变型

leetcode 刷题和变型 作为一个程序员,Leetcode 是一个非常重要的网站。它不仅可以帮助程序员提高算法和数据结构的能力,还能帮助我们准备技术面试。但是,刷 Leetcode 也需要花费大量的时间和精力来解决各种难题。那么,有没有什么…

【转存】Go语言设计模式

导语| 设计模式是针对软件设计中常见问题的工具箱,其中的工具就是各种经过实践验证的解决方案。即使你从未遇到过这些问题,了解模式仍然非常有用,因为它能指导你如何使用面向对象的设计原则来解决各种问题,提高开发效率&#xff0…

C++之正则表达式

目录 #include • .:换行符以外的任何字符 • […]:…字符中的任何一个 • [^…]:…字符之外的任何一个 • [[:charclass:]]:指定之字符类charclass中的一个 • \n, \t, \f, \r, \v:换行符,tab符号&#xf…