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索引的࿰…...
Spring Boot自动装配原理
简介 Spring Boot是一个开源的Java框架,旨在简化Spring应用程序的搭建和开发。它通过自动装配的机制,大大减少了繁琐的配置工作,提高了开发效率。本文将深入探讨Spring Boot的自动装配原理。 自动装配的概述 在传统的Spring框架中…...
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博客方式一样…...
从《网络空间独立宣言》到Web3:John Barlow的愿景在区块链时代实现了吗?
数字边疆的进化:从早期互联网理想主义到Web3的技术实践 1996年,当John Barlow写下《网络空间独立宣言》时,他或许想象不到二十多年后,区块链技术会以另一种方式重新诠释他的理念。这位电子前沿基金会的联合创始人曾宣称࿱…...
告别六张图!手把手教你用单张Panorama全景图实现D3D12/D3D11环境光照(附极坐标采样Shader代码)
单张Panorama全景图在D3D12/D3D11环境光照中的实战应用 当你在HDRI Haven等资源站下载了精美的全景图,却发现它们大多以Panorama格式存储而非熟悉的Cubemap时,该如何在自己的DirectX渲染管线中正确使用?本文将带你深入理解两种格式的本质差异…...
3步搞定!AeroSpace配置Kitty终端快捷键,效率飙升
3步搞定!AeroSpace配置Kitty终端快捷键,效率飙升 【免费下载链接】AeroSpace AeroSpace is an i3-like tiling window manager for macOS 项目地址: https://gitcode.com/GitHub_Trending/ae/AeroSpace AeroSpace是一款类i3的macOS窗口管理器&…...
小白从零开始做多模态新生儿疼痛评估系统|第十二篇:PainC3M模型完落地!实验结果复盘+准确率提升规划
哈喽大家好~前面十一篇内容,我们已经把前端页面、后端API、数据库、前后端联调全部打通,整套系统已经可以正常运行、展示数据、完成基础疼痛评估。这一篇正式进入AI核心模型篇,基于论文《Evaluating neonatal pain via fusing vis…...
【会议征稿通知 | 大连交通大学主办 | IEEE出版 | EI 、Scopus稳定检索】第七届人工智能、网络与信息技术国际学术会议(AINIT 2026)
第七届人工智能、网络与信息技术国际学术会议(AINIT 2026) 2026 7th International Seminar on Artificial Intelligence, Networking and Information Technology 2026年5月15-17日 | 中国-大连 大会官网:www.ainit.org 截稿时间&…...
LaTeX2Word-Equation:学术写作的公式迁移革命,3秒完成数学公式完美转换
LaTeX2Word-Equation:学术写作的公式迁移革命,3秒完成数学公式完美转换 【免费下载链接】LaTeX2Word-Equation Copy LaTeX Equations as Word Equations, a Chrome Extension 项目地址: https://gitcode.com/gh_mirrors/la/LaTeX2Word-Equation 还…...
RK3588上OpenCV C++环境搭好了,然后呢?一个图像灰度化实例带你快速上手
RK3588上OpenCV C实战:从图像灰度化到完整视觉项目开发 刚在RK3588上搭建好OpenCV C环境,却不知道如何迈出第一步?本文将带你从最简单的图像灰度化项目开始,逐步深入OpenCV C开发的核心技巧。不同于基础安装教程,我们更…...
避坑指南:SpringBoot集成HAPI处理HL7消息时,你可能会遇到的编码与ACK回复问题
SpringBoot集成HAPI处理HL7消息的实战避坑指南 医疗系统间的数据交换往往采用HL7协议标准,而HAPI作为Java生态中最成熟的HL7处理框架,与SpringBoot的结合能快速构建稳定服务。但在实际联调中,开发者常会遇到字符集混乱、ACK响应不规范等"…...
告别绿点焦虑!用ADB命令一键隐藏Android 12/13的相机麦克风状态栏图标(无需Root)
深度隐藏Android隐私指示器的ADB高阶玩法 每次打开相机或语音助手时,状态栏角落那个闪烁的绿点总在提醒你:系统正在监视着你的隐私权限。对于注重界面简洁的极客用户来说,这个设计良好的隐私保护功能反而成了视觉干扰。更令人困扰的是&#…...
在 ABAP Cloud 里为什么 sy-datum 会报警,以及该如何把它改成真正合规的写法
我先把结论放在前面,The old variant of "SY-DATUM" should not be used in the current ABAP language version 这个 warning,不是在说代码立刻不能跑,也不是在说系统不认识日期了。 它真正想表达的是,当前这个类的 ABAP Language Version 已经是 ABAP for Clou…...
