每天一个shell小知识(case)

2023-11-09

Case语句

case:

Case语句主要适用于:某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况和多分支if语句非常相似。只不过if要判断多个不同的条件而case语句只判断一个变量的不同取值。

结构

case  变量值  in
模式1)
	命令序列1
	;;
模式2)
	命令序列2
	;;
。。。。。。。。。。。。。
*)
默认命令序列
esac
case行尾必须为单词“in”,每一模式必须以右括号“)”结束。
双分号“;;”表示命令序列的结束。
模式字符串中,可以用方括号表示一个连续的范围,如:“[0-9]”;还可以用竖杠符号“|”表示或,如“A|B”.
最后的“*)”表示默认模式, 其中的*相当于通配符

例1

检查用户输入字符类型:提示用户输入一个字符,通过case语句判断该字符为字母,数字或者是其他字符,并给出相应的提示。

#vi case1.sh
#!/bin/bash
read -p "请输入一个字符,并按enter确认:"  KEY
case "$KEY" in 
        [a-z]|[A-Z])
                echo "您输入的字符为字母"
                ;;
        [0-9])
                echo "您输入的字符为数字"
                ;;
		*)
        echo "您输入的是空格、功能键或其他控制字符"
esac
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每天一个shell小知识(case) 的相关文章

  • 如何让 STDOUT 和 STDERR 都转到终端和日志文件?

    我有一个脚本 将由非技术用户交互式运行 该脚本将状态更新写入 STDOUT 以便用户可以确定脚本运行正常 我希望将Stdout和STDERR重定向到终端 以便用户可以看到脚本正在工作 并查看是否存在问题 我还希望将两个流都重定向到日志文件
  • Grep 递归和计数

    需要在具有大量子目录的目录中搜索文件内的字符串 我在用着 grep c r string here 我怎样才能找到总数量 如何仅输出至少具有一个实例的文件 使用 Bash 的进程替换 这给出了我认为是您想要的输出 如果不是 请澄清问题 gr
  • 在 C# 中编写批处理脚本的好方法是什么?

    我想用 C 编写简单的脚本 我通常会使用 bat 或 4NT btm 文件 复制文件 解析文本 询问用户输入等等 相当简单 但在批处理文件中正确执行这些操作确实很困难 例如没有例外 我熟悉像 AxScript 这样的命令行 脚本 包装器 这
  • #*/ 在 UNIX Shell 脚本中使用

    谁能详细说明 在 UNIX Shell 脚本中的工作原理 我已经看到它在 Korn Shell 中的使用 它专门用于删除文件的扩展名 例如 func write app log o 删除状态文件 CIE STATUS FILE 这里假设文件
  • 将变量插入 sh 脚本命令[重复]

    这个问题在这里已经有答案了 bin sh f set proj dir OutputDir for projname in lib proj1 proj2 do mv scripts projname BYTECODE proj dir s
  • 从命令行更改 konsole 选项卡标题并使其持久?

    如何更改 konsole 选项卡标题 默认情况下 它设置为 u n 所以它总是自动改变 我可以这样设置 qdbus org kde konsole KONSOLE DBUS SESSION setTitle 1 My Title 但是一旦您
  • sed 和 rev shell 命令转换为 Python 脚本 [重复]

    这个问题在这里已经有答案了 有一个shell命令 我正在尝试将逻辑转换为python 但我不知道该怎么办 我需要一些帮助 shell命令是这样的 cd tests src main test ls find name vrlp while
  • 如何在 Bash 中删除字符串的第一部分?

    该代码将给出第一部分 但是如何删除它并获取没有第一部分的整个字符串 echo first second third etc cut d f1 你应该看看info cut 这将解释什么f1 means 实际上我们只需要第二个字段之后的字段 f
  • 在 shell/shell 脚本中设置 MongoDB 写关注

    我正在尝试填充一个集合MongoDB的壳 据我了解 使用轻松的Write Concern可以大大加快这个过程 我说的是文档 http docs mongodb org manual core write concern write oper
  • shell脚本中是否有互斥/信号量机制?

    我正在 shell 脚本中寻找互斥 信号量 并发机制 考虑以下情况 除非 a 用户不关闭共享文件 否则 b 用户应该无法打开 更新它 我只是想知道如何在 shell 脚本中实现互斥量 信号量 临界区等 在 shell 脚本中实现锁定机制 文
  • 如何隐藏显示终端命令输出

    当我运行这个命令时 sudo htpasswd b home reynolds htpasswd admin admin 我正在得到输出Updating password for user admin在终端中 但我不想显示该输出 所以我在谷
  • “./somescript.sh”和“. ./somescript.sh”有什么区别

    今天我按照一些说明在 Linux 中安装软件 有一个需要首先运行的脚本 它设置一些环境变量 指令告诉我执行 setup sh 但是我执行时犯了一个错误 setup sh 所以环境没有设置 最后我注意到了这一点并继续进行 我想知道这两种调用脚
  • 使用 hcitool 扫描低功耗蓝牙?

    当我运行此命令时 BLE 设备扫描仅持续 5 秒 sudo timeout 5s hcitool i hci0 lescan 输出显示在终端屏幕中 但是 当我将输出重定向到文件以保存广告设备的地址时 每次运行该命令时 我都会发现该文件是空的
  • 带变量的 AWK 负正则表达式

    我在 bash 脚本中使用 awk 来比较两个文件以获取不匹配的行 我需要将第二个文件的所有三个字段 作为一个模式 与第一个文件的所有行进行比较 第一个文件 chr1 9997 10330 HumanGM18558 peak 1 150 1
  • 编写一个 shell 脚本,find-greps 并在 1 行中输出文件名和内容

    要查看所有包含 abc 的 php 文件 我可以使用这个简单的脚本 find name php exec grep l abc 我可以省略 l 并且提取部分内容而不是文件名作为结果 find name php exec grep abc 我
  • C shell 脚本中是否有短路逻辑运算符?

    我认为 C shell 脚本的行为会像 C 一样 并对逻辑运算符使用短路求值 if e cache find monitor newer cache then endif 但在 if 语句中 即使第一个条件为真 也会检查第二个条件 从而给出
  • 如何按文件大小对查找结果进行排序

    如何按文件大小对 find 命令的结果进行排序 我试图对这个 find 命令的结果进行排序 find src type f print0 我不需要目录的大小 我需要仅按大小排序的文件相对路径 这是如何做的using find command
  • shell中基于正则表达式的颜色突出显示输出

    我想知道是否可以用颜色突出显示与某些字符串匹配的 shell 命令的输出 例如 如果我运行 myCommand 输出如下 gt myCommand DEBUG foo bar INFO bla bla ERROR yak yak 我希望所有
  • Linux shell 标题大小写

    我正在编写一个 shell 脚本并有一个如下所示的变量 something that is hyphenated 我需要在脚本中的各个点使用它 如下所示 something that is hyphenated somethingthati
  • Bash:替换管道标准输入中的子字符串

    我尝试用新的子字符串替换标准输入中的某个子字符串 在读取几个文件后 我必须从管道获取标准输入cat 然后我想将更改后的字符串向前推到管道中 这是我尝试做的 cat file1 file2 echo cat path to file path

随机推荐

  • easyui 下拉框联动

    supplierCode combobox onChange function n o var supplierCodes n join ajax type post url pageContext request contextPath
  • 前端代码 录音样式 类似微信发送语音

    先来上图 wxml代码 不是小程序的就换成div
  • Python: 基于DearPyGUI的环境变量查看器

    文章目录 1 目的 2 效果 3 实现思路 获取环境变量 分隔环境变量取值 界面显示 4 代码实现 1 目的 无论是 Windows 还是 Linux 下 编辑环境变量总是绕不开的一个基本功 也许你已经熟练使用 vim 来查询和就地替换 P
  • npm下载依赖报错 Invalid dependency type requested: alias

    报这个是alias需要高版本的npm 查看一下npm版本 npm version alias这个好像得是6 9 0版本以上 我使用的是nvm管理node版本 我切换到12版本就可以了 成功安装 在此记录一下踩坑
  • 强化学习的模型

    文章目录 前言 一 强化学习是什么 二 基本模型 1 基本框架 2 学习过程 三 马尔科夫决策过程 Markov Decision Process MDP 1 马尔科夫性质 2 MDP的基本组成部分 3 MDP的基本流程 四 基于模型和免模
  • Tensorflow激活函数--tf.nn.dropout

    前言 激活函数 Activation Function 运行时激活神经网络中某一部分神经元 将激活信息向后传入下一层的神经网络 神经网络的数学基础是处处可微的 所以选取激活函数要保证数据输入与输出也是可微的 激励函数的作用 如果不使用激活函
  • 基于ARIMA算法的时间序列数据预测——matlab实现

    基于ARIMA算法的时间序列数据预测 matlab实现 时间序列分析是一种重要的数据分析方法 它可以对时间序列数据进行统计和预测 ARIMA Autoregressive Integrated Moving Average 是一种常用的时间
  • Spring boot ,dubbo整合异常

    Caused by java lang IllegalArgumentException java lang ClassCastException com guooo boot acc serv impl HelloDubboService
  • 5.39 综合案例2.0 - STM32蓝牙遥控小车2(语音控制)

    综合案例2 0 蓝牙遥控小车1 语音控制 成品展示 案例说明 器件说明 小车连线 小车源码 语音模块遥控 语音遥控连线 模块使用说明 1 MLT BT05 4 0 蓝牙模块 2 ASRPRO 2m模块 下载代码连线 模块编程说明 成品展示
  • css设置内外边框距离

    margin属性可以有一到四个值 p gt margin 25px 50px 75px 100px 上边距为25px 右边距为50px 下边距为75px 左边距为100px margin 25px 50px 75px 上边距为25px 左右
  • Ubuntu20.04 安装 Tomcat 9.0.34

    最近开始使用 Ubuntu 在上面安装 Tomcat了 记录一下 具体步骤和直接在 CentOS 上面的差不多 一 解压安装包 tar zxvf apache tomcat 9 0 34 tar gz 二 修改目录所有权 用ll命令查询 修
  • PAT——团体程序设计天梯赛-练习集(5分题集)Python 3

    该博客记录我参加天梯赛 1 Hello World print Hello World 2 计算摄氏温度 print fahr 100 celsius format int 5 100 32 9 3 计算指数 n int input pri
  • Webservice接口数据抽取_kettel<一>

    在进行ETl数据抽取的时 有时会遇到Webservice接口服务的情况 这里对kettel工具和java脚本两种抽取方式来简单的介绍一下 由于篇幅较长 我分四篇来介绍 下一篇地址 Webservice接口数据抽取 kettel lt 二 g
  • xml 入门 shema_01

    shema基础 shema的使用 shema的属性和语法 相应的源码 1 shema的格式
  • Java静态代理、动态代理(JDK代理、CGLIB代理)常见面试题

    小结 静态代理不灵活 静态代理类似模板方法设计模式 动态代理灵活 方便 每个框架都会使用到 例如 spring中的AOP 默认为JDK实现方式 也可选择CGLIB实现方式 JDK动态代理只能代理实现接口的类或者直接代理接口 限制 必须要有接
  • 51单片机c语言随机函数,[转载]51单片机中生成随机数

    随机数在单片机的应用中也是很多的 当然产生随机数的方法有很多 当中有一个就是利用单片机定时器 取出未知的定时器THX和TLX的值 再加以运算得到一个规定范围内的随机数值 这做法也是可行的 或者预先写好一个随机数表 然后进行取数据 也是可以的
  • Web开发文稿

    前言 首先 目前主流开发工具有很多 而且更新迭代的速度非常迅速 所以这里只谈一些基础的概念 如前后端的交互到底是怎么交互的 这也是我在学习网页开发的很困惑的东西 一 我的开发工具 网页界面 html css 浏览器脚本 js 服务器脚本 p
  • android studio全局搜索 快捷键

    全局搜索 gt 项目下的APP目录 gt 右键 gt Find in path 快捷键 Ctrl h
  • 去掉IntelliJ IDEA 中 mybatis 对应的 xml 文件警告

    版权声明 本文为博主原创文章 如需转载 请写明出处 尊重他人即尊重自己 http blog csdn net aubdiy article details 68485336 IntelliJ IDEA 打开 mybatis 的 xml 文件
  • 每天一个shell小知识(case)

    Case语句 case 结构 例1 case Case语句主要适用于 某个变量存在多种取值 需要对其中的每一种取值分别执行不同的命令序列 这种情况和多分支if语句非常相似 只不过if要判断多个不同的条件而case语句只判断一个变量的不同取值