当前位置: 首页 > news >正文

Shell脚本case in esac分支语句应用

记录:434

场景:Shell脚本case in esac分支语句应用。

版本:CentOS Linux release 7.9.2009。

1.case in esac格式

格式:

case 值 in 
模式1)expression;;
模式2)expression;;
模式n)expression;;
esac

解析:case是开始语句,esac是结束语句,;;表示分支结束。in 模式n)表示匹配分支。

2.使用case in esac

2.1脚本

脚本名称:b2023052811.sh

脚本内容:

#!/bin/bashecho "请输入字符串日期(格式:yyyymmdd):"
read day_str# date命令获取星期索引号,0是星期日,1-6是星期一到星期六
week_index=`date -d ${day_str} +%w`case ${week_index} in 0)echo "日期: ${day_str},是星期日.";;1)echo "日期: ${day_str},是星期一.";;2)echo "日期: ${day_str},是星期二.";;3)echo "日期: ${day_str},是星期三.";;4)echo "日期: ${day_str},是星期四.";;5)echo "日期: ${day_str},是星期五.";;6)echo "日期: ${day_str},是星期六.";;*)echo "输入信息不正确.";;
esac

2.2执行与输出

执行命令:bash b2023052811.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052811.sh 
请输入字符串日期(格式:yyyymmdd):
20230527
日期: 20230527,是星期六.
[root@hadoop211 tutorial]# bash b2023052811.sh 
请输入字符串日期(格式:yyyymmdd):
20230528
日期: 20230528,是星期日.

3.使用case in esac

3.1脚本

脚本名称:b2023052812.sh

脚本内容:

#!/bin/bashecho "请输入城市名称:"
read city_name
case ${city_name} in "杭州"|"宁波"|"绍兴")echo "${city_name},是浙江省的城市.";;"苏州"|"无锡"|"常州")echo "${city_name},是江苏省的城市.";;*)echo "${city_name},其它信息,暂不支持.";;
esac

3.2执行与输出

执行命令:bash b2023052812.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052812.sh 
请输入城市名称:
宁波
宁波,是浙江省的城市.
[root@hadoop211 tutorial]# bash b2023052812.sh 
请输入城市名称:
苏州
苏州,是江苏省的城市.
[root@hadoop211 tutorial]# bash b2023052812.sh 
请输入城市名称:
上海
上海,其它信息,暂不支持.

4.使用case in esac和while组合

4.1脚本

脚本名称:b2023052813.sh

脚本内容:

#!/bin/bashwhile true
dostop_flag=falseecho '请根据偏好输入技术框架名称,(如需结束体验,请输入EOF)'read techcase ${tech} in Hadoop)echo "The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.";;Spark)echo "pache Spark™ is a multi-language engine for executing data engineering, data science, and machine learning on single-node machines or clusters.";;Hive)echo "The Apache Hive is a distributed, fault-tolerant data warehouse system that enables analytics at a massive scale and facilitates reading, writing, and managing petabytes of data residing in distributed storage using SQL";;Flink)echo "Apache Flink is a framework and distributed processing engine for stateful computations over unbounded and bounded data streams";;DolphinScheduler)echo 'Apache DolphinScheduler is the modern data workflow orchestration platform with powerful user interface, dedicated to solving complex task dependencies in the data pipeline and providing various types of jobs available `out of the box`.';;EOF)stop_flag=trueecho "接收到结束字符:${tech},结束本次体验.";;*)echo "暂不支持该项技术.";;esac#取字符串变量时,使用$取值再比对   if [[ ${stop_flag} = true ]];thenbreakfi
done

4.2执行与输出

执行命令:bash b2023052813.sh

执行结果:

[root@hadoop211 tutorial]# bash b2023052813.sh 
请根据偏好输入技术框架名称,(如需结束体验,请输入EOF)
Hadoop
The Apache™ Hadoop® project develops open-source software for reliable, scalable, distributed computing.
请根据偏好输入技术框架名称,(如需结束体验,请输入EOF)
C++
暂不支持该项技术.
请根据偏好输入技术框架名称,(如需结束体验,请输入EOF)
EOF
接收到结束字符:EOF,结束本次体验.

以上,感谢。

2023年5月28日

相关文章:

Shell脚本case in esac分支语句应用

记录:434 场景:Shell脚本case in esac分支语句应用。 版本:CentOS Linux release 7.9.2009。 1.case in esac格式 格式: case 值 in 模式1)expression;; 模式2)expression;; 模式n)expression;; esac 解析:case…...

【线性dp必学四道题】线性dp四道经典例题【最长上升子序列】、【最长公共子序列】、【最长公共上升子序列(maxv的由来)】【最长公共子串】

【最长上升子序列】、【最长公共子序列】、【最长公共上升子序列】 最长上升子序列f[i] 表示以i结尾的最长子序列 最长公共子序列f[i][j] 表示 a前i 和 b前j个 最长公共长度 最长公共上升子序列f[i][j]代表所有a[1 ~ i]和b[1 ~ j]中以b[j]结尾的公共上升子序列的集合 最长公共子…...

追寻幸福:探索幸福的关键特征和行为

目录 1. 积极的心态 2. 良好的人际关系 3. 自我接纳和自尊 4. 追求意义和目标 5. 健康的身心状态 6. 感知和实现个人价值 幸福是一个主观的感受,因此不同的人对于幸福的定义和追求方式可能会有所不同。然而,有一些共同的特点和行为模式&#xff0c…...

Redis-02-集群

一、redis5搭建集群 1.1、案例:搭建6台redis主机,配置如下 redis并发量:https://www.gxlcms.com/redis-350423.html主机IP:192.168.168.60~65修改redis配置文件hash槽移动,槽内的数据也随之移动 [root60 ~]# vim /e…...

【2023 · CANN训练营第一季】MindSpore模型快速调优攻略 第三章——MindSpore云上调试调优

1.ModelArts云上调试调优 ModelArts密钥初始化 详细教程: 初始化OBS服务 创建训练作业 2.MindSpore IDE插件效率提升 通过智能代码块推荐、代码自动补全等特性,提升MindSpore脚本开发效率,对接ModelArts云服务,实现模型训…...

python笔记17_实例演练_二手车折旧分析p2

…… 书接上文 4.车辆等级维度 探查车龄为5年的车辆,折旧价值与车辆等级的关系。 # 筛选出车龄为5的数据创建新表 data_age5 data[data[age] 5] data_age5 # 分组聚合计算均值 data_car_level data_age5.groupby(car_level_name)[lowest_price].mean().reset…...

android 12.0长按Power弹出关机对话框去掉屏幕截图和紧急呼救功能

1.概述 在12.0的系统长按关机键,会弹出关机的对话框,关机对话框里面由关机重启截图和紧急呼叫等功能,而由于开发功能需求要求去掉屏幕截图和紧急呼叫等功能,所以就要先找到关机对框的代码 然后实现功能 功能分析: 长按电源键弹出关机对话框,通过adb shell命令发现 就是f…...

2023年下半年软考高级需要报班吗?

首先,对于软考高级考试报班与否的问题,需要根据自身的情况来做出决定。如果你有较强的自学能力,且具备丰富的实际工作经验和技术知识,那么不报班也完全可以自学备考。但如果你对软件工程的知识掌握程度较低,或者时间紧…...

使用WordPress提高企业敏捷性

喜欢WordPress的原因有很多:该平台非常适合内容管理以及控制预算。此外, 在 提高开发效率和简化项目管理方面,WordPress可以通过多种方式提供帮助。 对于任何企业业务,目标始终是在不影响质量的情况下更快地启动项目、发布修复和…...

SSM编程---Day 07

目录 SpringMVC 一、概念 二、springMVC的请求处理流程 三、mvc:annotation-driven 标签的作用 四、HandlerMapping、Handler和HandlerAdapter的介绍 五、SpringMVC 体系结构 六、SpringMVC的常用注解 七、view和controller之间的传值 SpringMVC 一、概念 1、 Spring…...

Seata术语

1.什么是Seata Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网 2.Seata能干嘛 一个典型的分布式事务过程 分布式事务处理过程的一ID三组件模型: Transaction ID XID 全局唯一的事务ID三组…...

【Axure教程】通过文本框维护下拉列表选项

下拉列表(Dropdown List)是一种常见的用户界面元素,用于提供一组选项供用户选择。它通常以一个展开的列表形式出现,用户可以点击或选择列表中的一个选项。一般来说,他的选项值是由系统代码组成的,所以一般是…...

【C++】基础知识--输入/输出(5)

前面部分的示例程序几乎没有提供与用户的交互(如果有的话)。他们只是在屏幕上打印简单的值,但标准库提供了许多其他方式通过其输入/输出功能与用户交互。本节将简要介绍一些最有用的方法。 cin标准输入cout标准输出cerr标准错误(输…...

经典文献阅读之--PIBT(基于可见树的实时规划方案)

0. 简介 作为路径规划而言,不单单有单个机器人自主路径规划,近年来随着机器人行业的兴起,多机器人自主路径规划也越来越受到关注,对于多智能体寻路(MAPF)。一般的操作会给定一个地图、机器人集群、以及它们的初始位置和目的地&am…...

SAP-MM-计算方案字段解析

01、 “步骤”:标识此条件类型在计算方案中的顺序编号,此编号会影响到后续业务中条件类型的排序,不同条件类型之间的编号最好间隔大一些,这样设置便于以后对计算方案进行扩展; 02、 “计数器”&#xff1…...

go-gf框架两个表以事务方式写入示例

下面是对每一行代码的中文解释: // 创建数据库连接对象 var tx gdb.TX这行代码声明了一个名为tx的变量,类型为gdb.TX,表示数据库事务对象。 // 开启事务 if tx, err g.DB().Ctx(ctx).Begin(ctx); err nil {这行代码通过在数据库连接&…...

2023-5-31第三十一天

conform顺从,遵从,一致 squeeze挤压 proprietary专卖权,专利的,所有的 endeavor努力,尽力 comprise由...组成,包含 compose组成,写作 compact小型的 consult咨询,查阅 expan…...

什么是MQTT?mqtt协议和http协议区别

摘要: 什么是MQTT?MQTT(Message Queuing Telemetry Transport)译为:消息队列遥测传输,是一种轻量级的通讯协议,用于在网络上传输消息。MQTT 最初由 IBM 发布,后来成为 OASIS&#xf…...

平台使用篇 | 批处理(bat)脚本使用教程(四)

导读 一个开启多机软件在环仿真的批处理文件 (对应卓面RflyTools文件夹中SITLRun快捷方式),双击它,输入想要生成的飞机数量,即可生成多机软件在环仿真,等待RflySim3D显示3DFixed 4/4,然后可通过QGC控制飞机起飞。运行…...

接口的讲解

在这里之前我想童鞋们都学习过了springmvc。mybatis-plus。Springboot等一些框架 那么下面我们就整合这些框架 我们通过写crud这些接口 写接口的第一步就是引入pom文件 在pom文件里引入一下几种依赖 引入父级工程 thymeleaf导入模版工具类 SpringMVCjar包文件 热部署工具 l…...

Claude Code 接入 DeepSeek

安装 Claude Code DeepSeek 文档: 使用如下命令安装 Claude Code: npm install -g anthropic-ai/claude-code安装完成后,可以输入下面的命令检查是否安装成功。 claude --version购买 DeepSeek API 创建 Api Key 点击如下链接创建 DeepSeek API Ke…...

JMeter接口功能测试实战:从契约解码到全链路断言

1. 这不是“点点点”的接口测试,而是用JMeter把业务逻辑钉在验证线上 很多人第一次打开JMeter,看到那个树形结构、一堆监听器和配置元件,下意识就把它当成“高级版Postman”——填个URL、加几个参数、点“启动”,看绿色小三角跑起…...

012-java精品项目-淘客系统源码(安卓+IOS+php后端)

本文介绍了一个完整的淘宝客App开发项目,包含Android端、iOS端、后端服务和数据库系统。项目提供了详细的接口文档(淘宝客App接口文档.doc)和客户申请资料(淘宝客客户需要申请资料.doc),并包含完整的淘宝客…...

用labview制作的上位机界面的多语言显示

在工控系统中,特别是有国外项目的时候,多语言显示必不可少。labview的控件的显示项里,有一个“标题”项,用标题就可以实现多语言显示,因为在labview中,标签是唯一的,而标题是可以重复的。首先&a…...

从‘看山是山’到‘看山不是山’:手把手教你用Landsat8波段组合玩转地物‘透视’

给地球戴上X光眼镜:Landsat8波段组合的视觉魔法手册第一次接触遥感影像的人,常会惊讶于同一片土地在不同"滤镜"下竟能呈现截然不同的面貌——茂密的森林在某张图上如火炬般鲜红耀眼,在另一张图中却消失不见;平静的湖面时…...

Claude Code 基础配置篇-三层配置体系详解

基础配置篇 —— Rules、Memory、Custom Instructions 三层配置体系详解系列导读: Claude Code 最让新手头疼的问题是"每次写的代码风格都不一样"、“总要重新解释项目架构”。本篇将彻底解决这个问题。通过建立三层配置体系,你可以让 Claude …...

深度剖析Claude Code实操逻辑,解锁AI编程高效开发方式

文章目录前言一、我用Claude Code的翻车现场,能写一本《程序员血泪史》二、Claude Code的核心设计思想:你以为它是保姆,其实它是保安三、普通模式vs规划模式:一个是临时工,一个是项目经理四、两条核心指令,…...

MongoDB8.0新特性实战:向量搜索、时序集合与分片集群优化

MongoDB 8.0新特性实战:向量搜索、时序集合与分片集群优化 作者:Crown_22 | AI Agent & Hermes Agent 桌面程序开发者 前言 MongoDB 8.0 是一个重大版本更新,带来了多项面向 AI 和大数据场景的新特性。其中最引人注目的是原生向量搜索(Vector Search)——这让 MongoD…...

如何为嵌入式项目配置大模型API调用使用Taotoken与Python

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 如何为嵌入式项目配置大模型API调用使用Taotoken与Python 对于嵌入式或物联网开发者而言,在资源受限的开发环境中集成A…...

深入解析中兴光猫工厂模式:解锁隐藏网络管理权限的技术探索

深入解析中兴光猫工厂模式:解锁隐藏网络管理权限的技术探索 【免费下载链接】zteOnu A tool that can open ZTE onu device factory mode 项目地址: https://gitcode.com/gh_mirrors/zt/zteOnu 在当今的网络设备管理中,中兴光猫作为广泛部署的终端…...