您现在的位置是:首页 > 正文

Linux基础——Shell编程之条件语句

2023-12-01 05:00:30阅读 28

一、条件测试

test命令

测试表达式是否成立,若成立返回0(正常),否则返回其他数值(非零值都为异常)

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

文件测试

语法:[ 操作符 文件或目录 ]
常用的测试操作符

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

在这里插入图片描述

整数值比较

语法:[ 整数1 操作符 整数2 ]

常用的测试操作符

选项(只能比较整数值) 符号 说明
-eq == 等于(Equal)
-ne != 不等于(Not Equal)
-gt > 大于 (Greater Than)
-lt < 小于(Lesser Than)
-le <= 小于或等于 (Lesser or Equal)
-ge >= 大于或等于(Greater or Equal)

在这里插入图片描述

逻辑测试

语法:
格式1:[ 表达式1 ] 操作符 [ 表达式2 ]…
格式2:命令1 操作符 命令2…

常用的测试操作符

操作符 符号 说明
-a 或 && 逻辑与 “而且”
-o 或 丨丨 逻辑或 “或者”
! 逻辑否 “非”

在这里插入图片描述

二、if语句

单分支结构

语法:
if 条件测试操作
  then 命令序列
fi

在这里插入图片描述

双分支结构

语法:
if 条件测试操作
  then 命令序列1
  else 命令序列2
fi

在这里插入图片描述

多分支结构

语法:
if 条件测试操作1
  then 命令序列1
elif 条件测试操
  then 命令序列2
  else 命令序列3
fi

在这里插入图片描述

实验操作

1,#提示用户输入内容,使用if 语句判断输入的内容是否为整数。
在这里插入图片描述在这里插入图片描述

2判断输入内容是整数还是奇数
在这里插入图片描述在这里插入图片描述
3、提示用户输入100米赛跑的秒数,要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰,如果输入其它字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别,男生进男生组,女生进女生组,如果输入错误请提示错误
在这里插入图片描述在这里插入图片描述

三、case分支语句

case多分支结构

语法:
case 变量值 in
模式1)
  命令序列1
  ;;
模式2)
  命令序列2
  ;;
  ......
*)
  默认命令序列
esac   

在这里插入图片描述

case实操

示例:用case语句在/etc/init.d/目录中写一个firewalld脚本,并加入到系统服务管理中使能够使用 service firewalld start|stop|restart|status 来管理firewalld服务,要求如果命令选项不对,则提示 “用法: $0 {start|stop|status|restart}”。

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

文章来源:https://blog.csdn.net/cxin1225/article/details/130485403
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:https://www.dflian.com/184957.html

网站文章

  • 前端H5页面在真机调试查看请求接口的插件

    前端H5页面在真机调试查看请求接口的插件

    安装:npm i vconsolenpm i vconsole然后在main.js文件添加代码:import Vconsole from 'vconsole';const VConsole = new Vconsole();// console.log(VConsole);然后运行页面就可以看到调试的小窗口了打开之后是这样的成功!...

    2023-12-01 05:00:26
  • 泛型类相关

    泛型类相关

    泛型类相关

    2023-12-01 05:00:20
  • pdfPCell中设置单元格 setRowspan()与setColspan(),setPadding(),setBorder()

    pdfPCell中设置单元格 setRowspan()与setColspan(),setPadding(),setBorder()

    打印pdf格式:打印的表格如下:

    2023-12-01 05:00:14
  • java报错--org.springframework.beans.factory.BeanCreationException

    java报错--org.springframework.beans.factory.BeanCreationException

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'bookControll...

    2023-12-01 04:00:28
  • 溢出原理《转》

    其实所谓溢出原理:即是数据存储过程中超过数据结构所能容纳的实际长度都可成为溢出。我认为要浅显读懂该文必须了解计算机语言,计算机数制相关知识。如果要深入研究溢出则必须深入学习计算机程序设计相关知识,比如计算机数据结构,计算机编译原理,微机接口与组成原理等等。这里取前者,浅显谈谈计算机语言,计算机数制相关知识。一。浅谈计算机语言众所周知,计算机是0,1的二进制数字世界,所谓电子计算机乃是用电的低电平表

    2023-12-01 04:00:24
  • 局部性原理

    局部性原理

    cpu cache结构 内存&gt;L3&gt;L2&gt;L1多级缓存 这四级的速度是越来越快 本质上内存是一个大的一维数组二维数组在内存中按照行排列,先放a【0】再放a【1】 第一种arr1的遍历...

    2023-12-01 04:00:21
  • ForkJoin看这篇就够了!

    求解出子问题的解,合并得到原问题的解。Fork/Join采用的是分而治之的基本思想,分而治之就是将一个复杂的任务,按照规定的阈值划分成多个简单的小任务,然后将这些小任务的结果再进行汇总返回,得到最终的...

    2023-12-01 04:00:16
  • js轮询导致服务器瘫痪_websocket连接太多导致服务器卡顿怎么办?一招轻松实现横向扩展...

    前言项目中有即时聊天的需求,经过调研我们采用了socket.io自己实现了一个聊天服务器。开始的一段时间由于用户不是很多,消息的发送接收都还算流畅,最近随着在线用户数量飙升,每过一段时间就会发生发送消...

    2023-12-01 04:00:13
  • TCP第四次挥手为什么要等待2MSL(最长报文段寿命,Maximum Segment Lifetime)

    TCP第四次挥手为什么要等待2MSL(最长报文段寿命,Maximum Segment Lifetime)

    当客户端进入TIME-WAIT状态的时候(也就是第四次挥手的时候),必须经过时间计数器设置的时间2MSL(最长报文段寿命)后,才能进入关闭状态,这时为什么呢??? 这最主要是因为两个理由: 1、为了保...

    2023-12-01 03:00:40
  • 性能调优9:根据WaitType诊断性能

    性能调优9:根据WaitType诊断性能

    SQL Server数据库接收到查询请求,从生成计划到执行计划的过程,等待次数和等待时间在一定程度上揭示了系统性能的压力,如果资源严重不足,就会成为性能的瓶颈。因此,对等待的监控非常有助于对系统性能进...

    2023-12-01 03:00:37