Shell编程之条件语句

news2024/11/15 5:04:36

目录

一、条件测试

1)test命令

​编辑

 2)文件测试

常用的测试操作符

​编辑

 4)整数值比较

常用的测试操作符

6)逻辑测试

常用的测试操作符

7)三元运算符

二、if语句

1)单分支结构

2)双分支结构

​编辑

3)多分支结构

4)内嵌if语句 

三、case分支语句


一、条件测试

1)test命令

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

格式2:[ 条件表达式 ]

 2)文件测试

[ 操作符 文件或目录 ]

常用的测试操作符

操作符作用

-e

测试指定的文件或者目录是否存在

-f

测试指定对象是否为文件;指定的文件是否存在

-d

测试指定的对象是否为目录;指定的目录是否存在

-r

测试指定用户是否有读权限

-w

测试当前用户是否有写权限

-x

测试当前用户是否有执行权限

-L

测试文件是否为符号链接(软链接文件)

 4)整数值比较

[ 整数1 操作符 整数2]

常用的测试操作符

操作符含义(整数对比)符号表示(可用于字符串)

-eq

等于

==

-gt

大于

\>

-lt

小于

\<

-ge

大于等于

>=或=>

-le

小于等于

<=或=<

-ne

不等于

!=luo

6)逻辑测试

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

格式2:命令1 操作符 命令2 ……

常用的测试操作符

操作符符号名称解释
-a&&逻辑且前后条件都要成立
-o||逻辑或只需前后条件中一个成立
逻辑否否定

7)三元运算符

[ 表达式 ] && a || b   #如果表达式为真,则返回a,否则返回b
[ 表达式 ] && a        #如果表达式为真,则返回 a,否则返回表达式的值

二、if语句

If条件判断语句,通常以if开头,fi结尾。也可加入else或者elif进行多条件的判断

1)单分支结构

# 单分支语句
    if [ 表达式 ];then
        语句1
    fi

示例:判断/opt目录下,有没有这个test.sh这个文件,如果没有则进行创建

2)双分支结构

# 双分支if 语句
    if [ 表达式 ];then
        语句1
    else
        语句2
    fi

示例:ping 指定的IP,能ping通echo online,ping不通,则打印 echo offline

ps:&> /dev/null为把输出显示器的信息放入/dev/null黑洞文件中,这样就不会提示

3)多分支结构

# 多支条件语句
    if [ 表达式 ];then
        语句1
    elif [ 表达式 ];then
        语句2
    elif [ 表达式 ];then
        语句2
    fi  

示例:手动输入分数,并根据分数段进行评级,85-100为A,70-84为B,60-59为C,0-59为D

4)内嵌if语句 

即if中嵌套if语句

if [ 表达式 ];then
   if [ 表达式 ];then
        语句1
   else
        语句2
   fi
else
  语句3
fi

示例:提示用户输入100米赛跑的秒数

要求判断秒数大于0且小于等于10秒的进入选拔赛,大于10秒的都淘汰

如果输入其他字符则提示重新输入;进入选拔赛的成员再进一步判断男女性别

男生进男生组,女生进女生组,如果输入错误请提示错误


三、case分支语句

#Case选择语句,主要用于对多个选择条件进行匹配输出,与if elif语句结构类似,通常用于脚本传递输入参数,打印出输出结果及内容,其语法格式以Case…in开头,esac结尾。语法格式如下:

case 模式名 in
  模式 1)
    命令
    ;;
  模式 2)
    命令
    ;;
  *)
    不符合以上模式执行的命令
  esac

# 每个模式必须以右括号结束,命令结尾以双分号结束。

示例:手动输入分数,并根据分数段进行评级,85-100为A,70-84为B,60-59为C,0-59为D

  

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

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

相关文章

时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测

时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测 目录 时序预测 | MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现WOA-GRU鲸鱼算法优化门控循环单元时间序列预测 基于鲸鱼算法优化门…

必须要知道的hive调优知识(下)

Hive如果不用参数调优&#xff0c;在map和reduce端应该做什么 1、map阶段优化 Map阶段的优化&#xff0c;主要是确定合适的map数。那么首先要了解map数的计算公式 num_reduce_tasks min[${hive.exec.reducers.max}, (${input.size}/${hive.exec.reducers.bytes.per.reducer…

软件测试:测试一个网站

一、软件测试的原则 1、软件测试应尽早执行&#xff0c;并贯穿于整个软件生命周期 2、软件测试应追溯需求 3、测试应由第三方来构造 4、穷举测试是不可能的,要遵循 Good-enough 原则 5、必须确定预期输出&#xff08;或结果&#xff09; 6、必须彻底检查每个测试结果 7、…

常见电路20问,看看你能回答多少

1、什么是电路&#xff1f; 电路是由电子元件、导线和其他元件组成的路径&#xff0c;可以控制电子流的流动。电路可以用于将电能转化为其他形式的能量&#xff0c;例如光能、声能、机械能等等。电路还可以用于控制电子设备的操作&#xff0c;例如计算机、通信设备、车辆控制等…

来字节跳动实习,有机会发Nature子刊

来字节跳动实习&#xff0c;还能有机会发 Nature 子刊&#xff1f; 没错&#xff0c;ByteDance Research 与北京大学物理学院陈基课题组合作的一项研究近期登上了国际顶级刊物 Nature Communications。作者之中&#xff0c;共同一作伟中就是字节跳动的实习生同学&#xff0c;来…

python数据分析:人口普查可视化,看看哪个地区人口最多

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天案例难度指数: ☆☆☆ 准备 环境使用&#xff1a; 在开始写我们的代码之前&#xff0c;我们要准备好运行代码的程序 Anaconda (python3.9) –> 识别我们写的代码 开发工具&#xff1a; jupyter notebook –> 代…

ChatGPT在智能客服产品落地探讨

AI语言模型中的ChatGPT近期在互联网平台上引起了广泛的讨论。那么&#xff0c;如果想将这个大型语言模型应用在智能客服产品中&#xff0c;或者将其在ToB SaaS应用软件领域落地&#xff0c;应该采用哪种构建策略&#xff1f; 现在ChatGPT这个大型语言模型已经在各种平台获得了广…

初学Python来用它制作一个简单的界面

前言 很多刚开始学习python的宝子&#xff0c;就想着自己开始琢磨一些界面&#xff0c;但是吧很多都是有点难度的&#xff0c;自己又琢磨不透&#xff0c;只能把代码复制粘贴运行 现在就带你们来了解一个制作简单界面的代码 ttkbootstrap 是一个基于 tkinter 的界面美化库&am…

CMake自动按目录结构编译Protobuf代码

在使用CMake构建C项目时&#xff0c;如果有使用Protobuf&#xff0c;CMake提供了一个FindProtobuf.cmake模块来处理PB&#xff0c;其使用方法如下&#xff1a; find_package(Protobuf REQUIRED) protobuf_generate_cpp(GENERATED_SRC GENERATED_HEADER "pb/t.proto"…

rancher Prometheus添加exporter监控

mysql 用docker启动exporter docker run -d \-p 9104:9104 \--network my-mysql-network \-e DATA_SOURCE_NAME"mysqlexporter:mysqlexporter(192.168.147.46:3306)/" \prom/mysqld-exporter给集群中的prometheus添加该exporter的数据 First, you will need to c…

力劲塑机:用CRM“塑造”数字化能力

你知道吗&#xff1f;从手机到电脑&#xff0c;从暖气到扶梯&#xff0c;从家用电器到汽车、摩托车&#xff0c;从眼镜、手表到拉链、纽扣&#xff0c;这些物品的生产过程都离不开压铸和注塑工艺。如果说压铸和注塑这个几百亿的产业带动了几万亿的市场&#xff0c;一点也不夸张…

Vue3+axios+Mock.js实现登录功能

文章目录 前言一、Vue3 Element Plus Mock.js axios实现登录功能1.登录页面配置路由、编写表单内容2.编写表单校验规则3.登录触发表单预验证4.Mock.js模拟登录请求 二、面试题1.前端登录流程2.token是什么&#xff1f; 前言 最近学习了Vue3&#xff0c;这篇文章主要分享一下…

2023年6月DAMA-CDGA/CDGP数据治理认证考试可报名地区公布

2023年4月23日&#xff0c;据DAMA中国官方信息&#xff0c;目前6月DAMA-CDGA/CDGP数据治理认证考试开放报名地区有&#xff1a;北京、上海、广州、深圳、长沙、呼和浩特。目前南京、济南、西安、杭州等地区还在接近开考人数中&#xff0c;打算6月考试的朋友们可以抓紧时间报名啦…

内网远程控制软件哪个好用

市面上远程控制软件很多&#xff0c;但是支持纯内网环境&#xff08;无外网&#xff09;的很少。大部分远程控制软件可以在局域网用&#xff0c;但是它的数据流量还是要走软件公司服务器&#xff0c;也就是要走外网&#xff0c;所以在纯内网环境没法使用。那么什么软件支持纯内…

什么是光伏发电AGC/AVC系统及RCL-0923光伏群调群控AGC/AVC装置简介。以及分布式电源光伏可观可测,可调可控方案介绍

什么是光伏发电AGC/AVC系统及RCL-0923光伏群调群控AGC/AVC装置简介。以及分布式电源光伏可观可测&#xff0c;可调可控方案介绍。虚拟电厂光伏电站电压快速控制装置 一&#xff1a;什么是ACG系统 AGC系统是指自动发电控制系统&#xff0c;它通过控制光伏逆变器的出力&#xff0…

c++类 笔记

派生类 #include <iostream> using namespace std; class Box{private://类私有&#xff0c;只有成员可以调用 也就是说你不可以通过box1.a来调用 ,这些变量其实你默认不用写private 这个变量&#xff0c;只要放在最上面他默认就是 私有int a1;protected://protected&am…

博途1200/1500PLC工艺PID编程应用(SCL语言)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

Linux的进程控制

进程创建后&#xff0c;需要对其进行合理管理&#xff0c;光靠OS 是无法满足我们的需求的&#xff0c;此时可以运用进程控制相关知识&#xff0c;对进程进行手动管理&#xff0c;如创建进程、终止进程、等待 进程等&#xff0c;其中等待进程可以有效解决僵尸进程问题。 1、进程…

日撸 Java 三百行day38

文章目录 说明day381.Dijkstra 算法思路分析2.Prim 算法思路分析3.对比4.代码 说明 闵老师的文章链接&#xff1a; 日撸 Java 三百行&#xff08;总述&#xff09;_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护&#xff1a;https://github.com/fulisha-ok/…