shell 编程:终端输入一个字符,判断是大写字母小写字母还是数字字符。

(1)

#!/bin/bashread -p "Please input a character:" scase $s in[0-9])echo 数字;;[a-z])echo 小写字母;;[A-Z])echo 大写字母;;
esac

 演示

(2)

#!/bin/bash  read -p "请输入一个字符: " char  if [[ $char =~ [A-Z] ]]; then  echo "你输入的是大写字母。"  
elif [[ $char =~ [a-z] ]]; then  echo "你输入的是小写字母。"  
elif [[ $char =~ [0-9] ]]; then  echo "你输入的是数字字符。"  
else  echo "你输入的不是大写字母、小写字母或数字字符。"  
fi

在Bash shell脚本中,[[ ]] 是一个条件表达式,它是test命令的一个扩展,提供了更强大且灵活的字符串和模式匹配功能。与老的[]测试结构相比,[[ ]]有以下几点优势:

  1. 字符串比较[[ ]]支持直接的字符串比较和模式匹配,而[]通常与=!=等操作符结合使用来进行字符串比较。

  2. 模式匹配[[ ]]使用=~操作符来进行正则表达式匹配,这是[]所不具备的。

  3. 逻辑操作符[[ ]]支持更丰富的逻辑操作符,如&&||,以及!来进行逻辑否定。而[]则使用-a-o!,这些在[]中的操作符有时可能会与文件测试操作符混淆。

  4. 字符串操作[[ ]]还支持字符串操作,比如子串检查、长度检查等。

  5. 可读性[[ ]]通常认为在语法上更清晰,提高了脚本的可读性。

  6. 兼容性:虽然[]在POSIX shell中是标准的,但[[ ]]在Bash、Korn shell (ksh)、Z shell (zsh) 等中也被广泛支持。

  7. 避免某些问题[]在处理某些字符时可能会遇到问题,比如空格和特殊字符,而[[ ]]则能更好地处理这些情况。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/473065.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM-垃圾回收(标记算法,收集器)

申明:文章内容是本人学习极客时间课程所写,文字和图片基本来源于课程资料,在某些地方会插入一点自己的理解,未用于商业用途,侵删。 原资料地址:课程资料 垃圾回收的基本原理 1 什么是垃圾? 在…

C++ //练习 7.11 在你的Sales_data类中添加构造函数,然后编写一段程序令其用到每个构造函数。

C Primer(第5版) 练习 7.11 练习 7.11 在你的Sales_data类中添加构造函数,然后编写一段程序令其用到每个构造函数。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /**********************…

及其详细的Markdown基础-学习笔记(附有使用案例)

Markdown 基础语法 查看更多学习笔记:GitHub:LoveEmiliaForever 标题创建 标题语法格式 在文字前添加一至六个#即可创建标题 标题是有等级的,具体等级根据#个数决定 由于标题等级参与构建整篇文章的架构,编写时应该遵循如下规…

面试经典150题——螺旋矩阵

"The harder the conflict, the more glorious the triumph." - Thomas Paine 1. 题目描述 2. 题目分析与解析 2.1 思路一 看到题目,先仔细观察矩阵,题目要求我们给出顺时针遍历的结果即可,我们根据矩阵可以看出,首…

【STM32 CubeMX】SPI层次结构SPI协议与SPI控制器结构

文章目录 前言一、SPI 程序层次1.1 硬件原理图1.2 硬件框图1.3 软件层次 二、SPI协议2.1 硬件连线2.2 如何访问SPI设备2.3 SPI 框图 总结 前言 随着嵌入式系统的迅猛发展,STM32系列微控制器在各种应用中得到广泛应用。在嵌入式系统设计中,串行外设接口&…

Vue练习1:组件开发1(头像组件)

样式预览 注释代码 <template><div class"img-box":style"{ //动态style必须为对象width: size rem,height: size rem}"><imgclass"avatar-img":src"url" //动态url/></div> </templ…

MATLAB环境下使用二维高分辨时频分析方法提取波状分量

MATLAB环境下使用二维高分辨时频分析方法提取波状分量&#xff08;分离混合地震数据&#xff09;。 为了得到更高的时频分辨率&#xff0c;近年来涌现出了大量的新的时频分析方法。有些以线性和非线性时频分析为基础&#xff0c;有些则另辟蹊径&#xff0c;比如Hilbert-Huang变…

由斐波那契数列探究递推与递归

斐波那契数列定义&#xff1a; 斐波那契数列大家都非常熟悉。它的定义是&#xff1a; 对于给定的整数 x &#xff0c;我们希望求出&#xff1a; f ( 1 ) f ( 2 ) … f ( x ) f(1)f(2)…f(x) f(1)f(2)…f(x) 的值。 有两种方法,分别是递推(迭代)与递归 具体解释如下图 备注…

C++入门学习(二十九)goto语句

在C中&#xff0c;goto语句是一种控制流语句&#xff0c;用于无条件地转移到程序中指定的行。goto语句的使用通常是不推荐的&#xff0c;因为它可能导致代码结构变得混乱、不易理解和维护。然而&#xff0c;在某些特殊情况下&#xff0c;goto语句可能是一种有效的解决方法。 示…

vue-vuex(七)

阅读文章你可以收获&#xff1a; 1 了解什么是vuex 2 知道如何在vue项目中集成vuex 3 知道vuex由什么组成&#xff0c;并如何使用 vuex概述 1. 是什么&#xff1a;vuex 是一个 vue 的 状态管理工具&#xff0c;状态就是数据。 大白话&#xff1a;vuex 是一个插件&#xff0…

初识最短路径

一.最短路径的介绍 最短路径是图论和网络分析中一个重要的概念&#xff0c;它指的是在一个图或网络中连接两个节点或顶点的路径中&#xff0c;具有最小权重总和的路径。这个权重可以表示为路径上边或弧的长度、耗费、时间等&#xff0c;具体取决于问题的背景和应用场景。 如果你…

PHP服务商微信支付分支付(需确认模式)

//查询支付分是否支付 public function serviceorderServiceorder($out_order_no) {$setting [];$service_id $setting[service_id];$sub_mchid $setting[mchid];$ps "/v3/payscore/partner/serviceorder?service_id${service_id}&sub_mchid${sub_mchid}&out…