shell入门第三课 case语句

2023-10-27

虽然if...elif语言可以做多项选择,但是使用case在有大量选择的情况下,更为合理,case语句与C语言的case有些相似,可以根据条件选择对应的语句执行。

1.形式

case语句

case 变量 in
模式11 [ | 模式12 ] ...) 表达式;;
模式21 [ | 模式22 ] ...) 表达式;;
模式31 [ | 模式32 ] ...) 表达式;;
...
esac

每一个模式都用)结尾,每一条语句都要以;;结尾,整个case语句以esac结尾。匹配到相应的模式,只会执行这一个模式,然后跳出。和C语言如果不以break结尾,则会继续执行下面的语句,但是这里的不会,它只会执行当前匹配的这一条。

而且case语句可以有多个匹配模式,其中还能嵌套各种其他条件。

(1).案例1

#! /bin/bash
echo "输入字符串"
read str
case $str in
        yes) echo "输入yes";;
        no) echo "输入no";;
        ha) echo "输入哈";;
        *) echo "输入错误";;
esac
exit 0

输入对应的字符串,则会输出相应的语句

比如输入yes,则输出”输入yes“

(2)案例2

#! /bin/bash
echo "输入字符串"
read str
case $str in
        yes | y | Y | Yes | YES) echo "输入yes";;
        n* | N*) echo "输入no";;
        *) echo "输入错误";;
esac
exit 0

如果我们输入yes或者y或者Y,或者YES则会输出 输入yes

如果我们输入以n或者N开头的字符串,则会输出 输入no

如果都不是,则输出输入错误

(3)案例3

#! /bin/bash

read str
case $str in
        yes | Y | Yes | YES)
        echo "Good Morning"
        echo "Up bright and early this moring"
        ;;
        [nN*])
        echo "Good Afternoon"
        ;;
        *)
                echo "Sorry, answer not recongnized"
                echo "Please answer yes or no"
                exit 1
                ;;
esac
exit 0

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

shell入门第三课 case语句 的相关文章

  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 通过特定分隔符删除字符串

    我的文件中有几列 其中第二列有 分隔符 我想删除第二列中的第一个 第三个和第四个字符串 并将第二个字符串留在该列中 但我有正常的分隔符空间 所以我不知道 input 22 16050075 A G 16050075 A G 22 16050
  • 使用 grep 查找包含所有搜索字符串的行

    我有一个文件 其中包含很多与此类似的行 id 2796 some model Profile message type MODEL SAVE fields account 14 address null modification times
  • Linux中的CONFIG_OF是什么?

    我看到它在很多地方被广泛使用 但不明白在什么场景下我需要使用它 What is 配置 OF OF 的全名是什么 打开固件 这是很久以前发明的 当时苹果公司正在生产基于 PowerPC CPU 的笔记本电脑 而 Sun Microsystem
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • arm64和armhf有什么区别?

    Raspberry Pi Type 3 具有 64 位 CPU 但其架构不是arm64 but armhf 有什么区别arm64 and armhf armhf代表 arm hard float 是给定的名称Debian 端口 https
  • 无法使用 wget 在 CentOS 机器上安装 oracle jdk

    我想在CentOS上安装oracle java jdk 8 我无法安装 java jdk 因为当我尝试使用命令安装 java jdk 时 root ADARSH PROD1 wget no cookies no check certific
  • 如何在Linux内核源代码中打印IP地址或MAC地址

    我必须通过修改 Linux 内核源代码来稍微改变 TCP 拥塞控制算法 但为了检查结果是否正确 我需要记录 MAC 或 IP 地址信息 我使用 PRINTK 函数来打印内核消息 但我感觉很难打印出主机的MAC IP地址 printk pM
  • PHP 从命令行启动 gui 程序,但 apache 不启动

    首先 我阅读了有类似问题的人的一些帖子 但所有答案都没有超出导出 DISPLAY 0 0 和 xauth cookies 这是我的问题 提前感谢您的宝贵时间 我开发了一个小库 它使用 OpenGL 和 GLSL 渲染货架 过去几天我将它包装
  • 如何将目录及其子目录中的所有 PDF 文件复制到一个位置?

    如何全部复制PDF文件从目录及其子目录到单个目录 实际上还有更多的文件 并且深度有些任意 假设四个目录的最大深度是公平的 我想这些文件需要重命名 如果a pdf例如 位于多个目录中 因为我会adding https ebooks stack
  • CentOS:无法安装 Chromium 浏览器

    我正在尝试在 centOS 6 i 中安装 chromium 以 root 用户身份运行以下命令 cd etc yum repos d wget http repos fedorapeople org repos spot chromium
  • Linux:在文件保存时触发 Shell 命令

    我想在修改文件时自动触发 shell 命令 我认为这可以通过注册 inotify 挂钩并调用来在代码中完成system 但是是否有更高级别的 bash 命令可以完成此任务 尝试 inotify 工具 我在复制链接时遇到问题 抱歉 但 Git
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • SSE:跨页边界的未对齐加载和存储

    我在页面边界旁边执行未对齐加载或存储之前读过某处 例如使用 mm loadu si128 mm storeu si128内在函数 代码应首先检查整个向量 在本例中为 16 个字节 是否属于同一页 如果不属于同一页 则切换到非向量指令 我知道
  • 多处理:仅使用物理核心?

    我有一个函数foo它消耗大量内存 我想并行运行多个实例 假设我有一个有 4 个物理核心的 CPU 每个核心有两个逻辑核心 我的系统有足够的内存来容纳 4 个实例foo并行但不是 8 个 此外 由于这 8 个核心中的 4 个是逻辑核心 我也不
  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 在脚本内使用不带密码的 sudo

    由于某种原因 我需要作为用户在没有 sudo 的情况下运行脚本 script sh 该脚本需要 root 权限才能工作 我认为将 sudo 放入 script sh 中是唯一的解决方案 让我们举个例子 script sh bin sh su
  • Linux 上有关 getBounds() 和 setBounds() 的 bug_id=4806603 的解决方法?

    在 Linux 平台上 Frame getBounds 和 Frame setBounds 的工作方式不一致 这在 2003 年就已经有报道了 请参见此处 http bugs java com bugdatabase view bug do

随机推荐

  • JSP 9大内置对象 详解

    JSP内置对象 9个常用的内置对象 1 request对象 客户端的请求信息被封装在request对象中 通过它才能了解到客户的需求 然后做出响应 它是HttpServletRequest类的实例 序号方法说明 objectgetAttri
  • 数学建模——人口增长模型的matlab实现以及对2010年人口预测

    文章目录 运行软件 MATLAB R2012a 实验数据 指数增长模型 指数增长模型 方法一 对2010年的人口预测 指数增长模型 方法二 对2010年人口预测 改进的指数增长模型 对2010人口预测 逻辑斯蒂 logistic 模型 逻辑
  • Docker Desktop使用入门

    文章目录 Docker Desktop for Mac Docker Dashboard Docker 仪表板 Containers Apps 容器 容器操作 Docker Compose images 镜像 镜像操作 preference
  • 运筹第三章决策

    第三章决策 一 决策的概念 针对具有明确目标的决策问题 经过调查研究 根据实际与可能 拟定多个可行方案 让后运用统一的表针 选定对甲方按的全过程 二 决策的分类 1 安决策方法不同分类 常规性决策的特殊型决策 2 按照计划和控制的关系分类
  • vsftpd服务器搭建与管理

    安装vsftpd rpm包 mount dev cdrom mnt cd mnt Server cp vsftpd 2 0 5 16 el5 i386 rpm usr usr rpm ivh vsftpd 2 0 5 16 el5 i386
  • 【HTML】解决恶意script脚本输入问题

    项目场景 提示 这里简述项目相关背景 HTML script 安全验证 程序永远不可以相信用户的输入 问题描述 系统做安全测试 发现系统中允许直接调用用户输入的脚本内容 如 系统加载完 会重复执行这个脚本 原因分析 提示 这里填写问题的分析
  • 2021-09-30 学习记录:渐变线的制作

    如上所示渐变线 写法如下 part 4 width 320 remh height 2 remh background image linear gradient 136deg rgba 39 101 150 0 0 rgba 39 221
  • log4j.properties配置详解

    stone 的 log4j配置详解 Log4J的配置文件 Configuration File 就是用来设置记录器的级别 存放器和布局的 它可接key value格式的设置或xml格式的设置信息 通过配置 可以创建出Log4J的运行环境 1
  • 操作系统类型

    unix freebsd VxWorks Solaris Windows xp 7 8 10 Linux Redhat Ubuntu SUSE CentOS mobile Android ios symbian embeded system
  • 前端插件之 Select2 介绍及使用

    Select2是一款基于JQuery的下拉列表插件 主要用来优化select 支持单选和多选 同时也支持分组显示 列表检索 远程获取数据等众多好用的功能 项目地址 select2 org 基本使用 需要用到的JS和CSS文件位于项目代码下的
  • 彻底理解线程

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • h2database BTree 设计实现与查询优化思考

    h2database 是使用Java 编写的开源数据库 兼容ANSI SQL89 既实现了常规基于 BTree 的存储引擎 又支持日志结构存储引擎 功能非常丰富 死锁检测机制 事务特性 MVCC 运维工具等 数据库学习非常好的案例 本文理论
  • Python爬虫(七)学习提取网页中所有链接

    import re import urllib request def getlink url headers User Agent Mozilla 5 0 Windows NT 10 0 WOW64 AppleWebKit 537 36
  • Android OpenGL ES抗锯齿

    多重采样MSAA GLSurfaceView设置多重采样 抗锯齿EGLConfigChooser author weiss email kleinminamo gmail com created 2018 7 3 public class
  • Quartz2.2.0 产生misfire条件参数misfireThreshold和misfire策略详细说明

    首先 misfire产生的条件是 misfire的时间间隔大于配置里设置的misfireThreshold值 就认为是misfire了 错失触发了 比如 13 07 24开始执行 重复执行5次 开始执行时 quartz已经计算好每次调度的时
  • rk3588:failed to open rknpu module, need to insmod rknpu dirver!

    1 permission denied sudo chmod R 777 userdata 2 sudo E 系统中已有的python test py 大概是环境变量这块的问题 sudo E一下就行了
  • 情境领导者-第二章、领导风格

    文章目录 情境领导者 第二章 领导风格 故事 背景 独裁式与民主式的领导风格 工作行为 关系行为 态度与行为 领导风格 风格一 S1 风格二 S2 风格三 S3 风格四 S4 结束语 情境领导者 第二章 领导风格 故事 罗杰斯 简单地说 我
  • Unity3D-5.4.1f-Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作

    Unity3D 5 4 1f Rain Storm Effects插件应用及车辆前挡风玻璃简易雨刮器制作 作者Ghost Light 1 使用的雨天天气模拟插件是Rain Storm Effects Rain Storm Effects的基
  • mysql 字段拼接_mysql 字符串拼接,你知道几种方式?

    第一种 mysql自带语法CONCAT string1 string2 此处是直接把string1和string2等等的字符串拼接起来 无缝拼接哦 说明 此方法在拼接的时候如果有一个值为NULL 则返回NULL 如 1 SELECT CON
  • shell入门第三课 case语句

    虽然if elif语言可以做多项选择 但是使用case在有大量选择的情况下 更为合理 case语句与C语言的case有些相似 可以根据条件选择对应的语句执行 1 形式 case语句 case 变量 in 模式11 模式12 表达式 模式21