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

shell脚本之case 的用法

shell脚本之case


case是Shell脚本中的一种控制流语句,它允许根据变量的值选择不同的执行路径。case语句的语法如下:

case word in  pattern [| pattern]...) command-list ;;  pattern [| pattern]...) command-list ;;  ...  *) command-list ;;  
esac

在这个语法中,word是一个要检查的字符串或变量。pattern是一个要与word进行匹配的模式,可以是一个字符串、正则表达式或者一个列表。如果word与某个模式匹配,那么将执行相应的command-list。

下面是一些使用case语句的示例:

1)字符串匹配

#!/bin/bash  fruit="apple"  case $fruit in  apple)  echo "It's an apple." ;;  banana) echo "It's a banana." ;;  *)      echo "It's an unknown fruit." ;;  
esac

在这个例子中,case语句检查变量fruit的值。如果值是"apple",则输出"It’s an apple.“;如果值是"banana”,则输出"It’s a banana.“;否则,输出"It’s an unknown fruit.”。
2.)正则表达式匹配

#!/bin/bash  number=5  case $number in  1|2|3)   echo "It's a small number." ;;  4|5|6)   echo "It's a medium number." ;;  7|8|9|10) echo "It's a large number." ;;  *)       echo "It's an unknown number." ;;  
esac

在这个例子中,case语句使用正则表达式来匹配变量number的值。如果值是1、2或3,则输出"It’s a small number.“;如果值是4、5或6,则输出"It’s a medium number.”;如果值是7、8、9或10,则输出"It’s a large number.“;否则,输出"It’s an unknown number.”。
3)列表匹配

#!/bin/bash  color="red"  case $color in  red|green|blue)   echo "It's a primary color." ;;  yellow|orange|purple) echo "It's a secondary color." ;;  *)       echo "It's an unknown color." ;;  
esac

在这个例子中,case语句使用一个列表来匹配变量color的值。如果值是"red"、“green"或"blue”,则输出"It’s a primary color.“;如果值是"yellow”、“orange"或"purple”,则输出"It’s a secondary color.“;否则,输出"It’s an unknown color.”。
4)使用通配符

#!/bin/bash  file="example.txt"  case $file in  *.txt)   echo "It's a text file." ;;  *.doc|*.docx) echo "It's a Word document." ;;  *.pdf)   echo "It's a PDF document." ;;  *)      echo "It's an unknown file type." ;;  
esac

在这个例子中,case语句使用通配符来匹配变量file的值。如果值是以".txt"结尾的字符串,则输出"It’s a text file.“;如果值是以”.doc"或".docx"结尾的字符串,则输出"It’s a Word document.“;如果值是以”.pdf"结尾的字符串,则输出"It’s a PDF document.“;否则,输出"It’s an unknown file type.”。

相关文章:

shell脚本之case 的用法

shell脚本之case case是Shell脚本中的一种控制流语句,它允许根据变量的值选择不同的执行路径。case语句的语法如下: case word in pattern [| pattern]...) command-list ;; pattern [| pattern]...) command-list ;; ... *) command-list ;; esa…...

第3章 helloworld 驱动实验(iTOP-RK3568开发板驱动开发指南 )

在学习C语言或者其他语言的时候,我们通常是打印一句“helloworld”来开启编程世界的大门。学习驱动程序编程亦可以如此,使用helloworld作为我们的第一个驱动程序。 接下来开始编写第一个驱动程序—helloworld。 3.1 驱动编写 本小节来编写一个最简单的…...

基于PyTorch使用LSTM实现新闻文本分类任务

本文参考 PyTorch深度学习项目实战100例 https://weibaohang.blog.csdn.net/article/details/127154284?spm1001.2014.3001.5501 文章目录 本文参考任务介绍做数据的导入 环境介绍导入必要的包介绍torchnet和keras做数据的导入给必要的参数命名加载文本数据数据前处理模型训…...

Flutter插件的制作和发布

Flutter制作插件有两种方式(以下以android和ios为例): 目录 1.直接在主工程下的android和ios项目内写插件代码:2.创建独立Flutter Plugin项目,制作各端插件后,再引入项目:1. 创建Flutter Plugin…...

【JAVA】异常

作者主页:paper jie 的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和…...

合同矩阵充要条件

两个实对称矩阵合同的充要条件是它们的正负惯性指数相同。 正惯性指数是矩阵正特征值个数,负惯性指数是矩阵负特征值个数。 即合同矩阵的充分必要条件是特征值的正负号个数相同。 证明: 本论证中的所有矩阵都是对称矩阵。 根据定义,若矩…...

数据分析三剑客之Pandas

1.引入 前面一篇文章我们介绍了numpy,但numpy的特长并不是在于数据处理,而是在它能非常方便地实现科学计算,所以我们日常对数据进行处理时用的numpy情况并不是很多,我们需要处理的数据一般都是带有列标签和index索引的&#xff0…...

Spring Boot自动装配原理

简介 Spring Boot是一个开源的Java框架,旨在简化Spring应用程序的搭建和开发。它通过自动装配的机制,大大减少了繁琐的配置工作,提高了开发效率。本文将深入探讨Spring Boot的自动装配原理。 自动装配的概述 在传统的Spring框架中&#xf…...

VMware Workstation虚拟机网络配置及配置自动启动

目录 一、网络配置二、配置自动启动1.VMware 中配置虚拟机自启动2.系统服务中配置 VMware 服务自启动 一、网络配置 本文将虚拟机 IP 与主机 IP 设置为同一个网段。 点击 “编辑” -> “虚拟网络编辑器(N)…”: 点击 “更改设置”: 将 VMnet0 设置…...

智能语音机器人竞品调研

一、腾讯云-智能客服机器人 链接地址:智能客服机器人_在线智能客服_智能客服解决方案 - 腾讯云 二、阿里云-智能语音机器人 链接地址:智能对话机器人-阿里云帮助中心 链接地址:智能外呼机器人的业务架构_智能外呼机器人-阿里云帮助中心 三、火…...

【操作系统】进程的概念、组成、特征

概念组成 程序:静态的放在磁盘(外存)里的可执行文件(代码) 作业:代码+数据+申请(JCB)(外存) 进程:程序的一次执行过程。 …...

大二第二周总结

问题: 想到了之前追的辩论赛,主题是“被误解是表达者的宿命”, 反方认为被误解不是表达者的宿命: 由于表达者表意含混造成误解的可能性是人力可控的,表达者可在真诚沟通的基础之上,根据对方反应不断调整…...

JDK、eclipse软件的安装

一、打开JDK安装包 二、复制路径 三、点击我的电脑,找到环境变量 四、新建环境 变量名:JAVA_HOME 变量值就是刚刚复制的路径 五、在path中建立新变量 双击path 打印以下文字 最后一直双击确定,安装环境完成。 六、双击eclipse 选择好安装…...

235. 二叉搜索树的最近公共祖先 Python

文章目录 一、题目描述示例 1示例 2 二、代码三、解题思路 一、题目描述 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足…...

Apollo介绍和入门

文章目录 Apollo介绍配置中心介绍apollo介绍主流配置中心功能特性对比 Apollo简介 入门简单的执行流程Apollo具体的执行流程Apollo对象执行流程分步执行流程 核心概念应用,环境,集群,命名空间企业部署方案灰度发布全量发布 配置发布的原理发送…...

一文看懂Oracle 19c OCM认证考试(需要Oracle OCP证书)

Oracle OCM的认证全称是Oracle Certified Master,是比OCP更高一级的认证,姚远老师的很多OCP学员都对OCM考试有兴趣,这里跟大家做个介绍。 OCM考试全部是上机的实操考试,没有笔试,要到Oracle原厂参加两天的考试。参加1…...

回归预测 | MATLAB实现PSO-SDAE粒子群优化堆叠去噪自编码器多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现PSO-SDAE粒子群优化堆叠去噪自编码器多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现PSO-SDAE粒子群优化堆叠去噪自编码器多输入单输出回归预测(多指标,多图)效果一览…...

python自学

自学第一步 第一个简单的基础,向世界说你好 启动python 开始 print是打印输出的意思,就是输出引号内的内容。 标点符号必须要是英文的,因为他只认识英文的标点符号。 exit()推出python。 我们创建一个文本文档&…...

元宇宙安全与著作权相关市场与技术动态:韩国视角

元宇宙市场动态 元宇宙安全与著作权维护技术现状 元宇宙有可能为商业创造巨大价值,尤其是在零售和时尚领域。时尚产品的象征性价值不仅在物理空间中得以保持,在虚拟空间中也是如此。通过元宇宙平台,企业可以开发虚拟产品,降低供…...

springboot整合neo4j--采用Neo4jClient和Neo4jTemplate方式

1.背景 看了spring-boot-starter-data-neo4j的源码之后发现,该starter内已经实现了Neo4jClient和Neo4jTemplate,我们只需要使用Autowire就能直接使用它操作neo4j。 Neo4jClient方式与我的另一篇springboot整合neo4j-使用原生cypher Java API博客方式一样…...

【算法与数据结构】701、LeetCode二叉搜索树中的插入操作

文章目录 一、题目二、解法三、完整代码 所有的LeetCode题解索引,可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、解法 思路分析:这道题关键在于分析插入值的位置,不论插入的值是什么(插入值和原有树中的键值都…...

前端--HTML

文章目录 HTML结构快速生成代码框架HTML常见标签 表格标签 编写简历信息 填写简历信息 Emmet 快捷键 HTML 特殊字符 一、HTML结构 1.认识HTML标签 HTML 代码是由 "标签" 构成的. 形如: <body>hello</body> 标签名 (body) 放到 < > 中 大部分标…...

安装配置 zookeeper(单机版)

目录 一 准备并解压安装包 二 修改zoo.cfg文件 三 创建相应两个目录 四 创建文件myid 五 修改环境变量 六 启动 zookeeper 一 准备并解压安装包 这里提供了网盘资源 http://链接: https://pan.baidu.com/s/1BybwSQ_tQUL23OI6AWxwFw?pwdd4cf 提取码: d4cf 这里的安装包是…...

2023/9/7 -- C++/QT

作业 1> 思维导图 2> 封装一个结构体&#xff0c;结构体中包含一个私有数组&#xff0c;用来存放学生的成绩&#xff0c;包含一个私有变量&#xff0c;用来记录学生个数&#xff0c; 提供一个公有成员函数&#xff0c;void setNum(int num)用于设置学生个数 提供一个…...

2023年09月IDE流行度最新排名

点击查看最新IDE流行度最新排名&#xff08;每月更新&#xff09; 2023年09月IDE流行度最新排名 顶级IDE排名是通过分析在谷歌上搜索IDE下载页面的频率而创建的 一个IDE被搜索的次数越多&#xff0c;这个IDE就被认为越受欢迎。原始数据来自谷歌Trends 如果您相信集体智慧&am…...

MyBatis基础之概念简介

文章目录 基本概念1. 关于 MyBatis2. MyBatis 的体系结构3. 使用 XML 构建 SqlSessionFactory4. SqlSession5. 默认的别名6. 补充 [注意] 放前面前 很多人可能在使用 MyBatis-plus 进行代码开发&#xff0c;MyBatis的这部分内容是用来更好的讲述之后的内容。 基本概念 1. 关于…...

解决 SQLyog 连接 MySQL8.0+ 报错:错误号码2058

文章目录 一、问题现象二、原因分析三、解决方案1. 方案1&#xff1a;更新SQLyog版本2. 方案2&#xff1a;修改用户的授权插件3. 方案3&#xff1a;修复my.cnf 或 my.ini配置文件 四、最后总结 本文将总结如何解决 SQLyog 连接 MySQL8.0 时报错&#xff1a;错误号码2058 一、问…...

Linux内核4.14版本——drm框架分析(11)——DRM_IOCTL_MODE_ADDFB2(drm_mode_addfb2)

目录 1. drm_mode_addfb2 2. drm_internal_framebuffer_create 3. drm_fb_cma_create->drm_gem_fb_create->drm_gem_fb_create_with_funcs 4. drm_gem_fb_alloc 4.1 drm_helper_mode_fill_fb_struct 4.2 drm_framebuffer_init 5. 调用流程图 书接上回&#xff0c;使…...

mysql的date_format()函数格式月份的坑

问题背景 我表中有个字段存的是“年-月”格式的字符串&#xff0c;格式是这样的&#xff1a;‘2023-08’ 在查询这个表数据时&#xff0c;我使用了如下sql语句&#xff1a; select * from car where date_format(car_start_month,%Y-%m)<2023-08 意思是查询 car_start_mo…...

保姆级式教程:教你制作电子画册

在这个数字化时代&#xff0c;电子画册成为了展示和分享作品的一种流行方式。制作一个精美的电子画册不仅可以展示你的创意和才华&#xff0c;还可以吸引更多人的关注和欣赏。下面告诉大家一些小步骤&#xff0c;带你一步步学习如何制作电子画册。 1.收集和整理作品 接下来&am…...

模板网站与定制网站的优缺点/百度网页打不开

题目链接&#xff1a;点击打开链接题目描述 很久以前&#xff0c;在一个遥远的星系&#xff0c;一个黑暗的帝国靠着它的超级武器统治者整个星系。 某一天&#xff0c;凭着一个偶然的机遇&#xff0c;一支反抗军摧毁了帝国的超级武器&#xff0c;并攻下了星系中几乎所有的星球。…...

wordpress优化图片/搜索网排名

底层漏洞&#xff1a;1. 查看该系统所用框架&#xff1a;Struts2的相关安全&#xff1a;(1) 低版本的struts2&#xff0c;低版本的Struts2存在很多已知的版本漏洞。一经使用&#xff0c;很容易造成比较大的危害。(2) 开启 Struts2的动态调用方法&#xff0c;现在发现的如s2-0…...

崇文企业网站建设公司/广州各区正在进一步优化以下措施

Jquery Form Plugin 是jquery 最重 要的插件之一&#xff0c;它利用AJAX技术在不引起页面刷新的情况下POST表单。主要有两个方法&#xff1a;ajaxform 和ajaxsubmit 。 它会自动收集表单元素内容&#xff0c;决定如何管理提交进程。这两个方法支持多重选择。我想AJAX方式的表单…...

开发网站用什么工具做设计/如何在百度搜索到自己的网站

在java中&#xff0c;垃圾意味着未引用的对象。垃圾收集是自动回收运行时未使用内存的过程。 换句话说&#xff0c;它是一种销毁未使用对象的方法。它类似于&#xff0c;在C语言中使用free()函数&#xff0c;在C中使用delete()。 但是&#xff0c;在java中这些会自动执行。因此…...

东莞企业网站制作推广运营/东莞公司seo优化

茶已备好&#xff0c;只待君来&#xff01;感谢关注 前端点线面 (>‿<&#xff09;&#xff0c;本号定期推荐原创深度好文&#xff0c;帮助每一位在前端领域打拼的伙伴们走向前列&#xff0c;此外关注我获取最前沿知识点、海量学习资料、《前端百题斩》、大量思维导图&am…...

徐州网站开发价位/深圳网

1.函数中两个隐含的参数&#xff1a;arguments和this 2.调用函数的不同方式 3.处理函数上下文的问题 隐式的函数参数this和arguments。两者会被静默地传递给参数&#xff0c;并且可以像函数体内显示声明的参数一样被正常访问。 参数this表示被调用函数的上下文对象&#xf…...