当前位置:网站首页>bash case用法
bash case用法
2022-08-03 11:34:00 【小青头】
bash case用法
在bash脚本中,除了使用if做条件判断,也可以使用case做条件判断。
case比起if else可以处理条件很多,而且条件均为匹配字符串
case格式如下
case 变量 in
条件1)
语句1
语句2;;
条件2)
语句1
语句2;;
*)
语句1
语句2;;
esca
注意:
- 条件都是字符串,可以使用|,[],等简单的bash通配符,*号代表匹配所有字符串
- 语句结束需要双引号;;
示例
示例1:写一个脚本提供如下菜单显示给用户
m|M) show memory usages;显示内存信息
d|D) show disk usages;显示磁盘信息
q|Q) quit退出
[[email protected] bash_test]# cat 14.sh
#!/bin/bash
cat << EOF
m|M) show memory usages;
d|D) show disk usages;
q|Q) quit
EOF
read -p "input you choice " UserChoice
case $UserChoice in
m|M)
free -m;;
d|D)
df -h;;
q|Q)
exit 0;;
*)
echo "invalid character"
esac
[[email protected] bash_test]# ./14.sh
m|M) show memory usages;
d|D) show disk usages;
q|Q) quit
input you choice M
total used free shared buff/cache available
Mem: 7812 3227 4086 82 498 4247
注意:选项可以使用|代表或,比如输入m或M都可以查看内存信息
示例2:写一个程序,从终端中读取输入,判断输入的是数字,小写字母,大写字母,还是特殊字符
[[email protected] bash_test]# cat CheckInput.sh
#!/bin/bash
read -p "input a character:" Char
case $Char in
[0-9])
echo "a digit";;
[A-Z])
echo "a upper";;
[a-z])
echo "a lower";;
[[:punct:]])
echo "A punction.";;
*)
echo "Special char";;
esac
[[email protected] bash_test]# ./CheckInput.sh
input a character:A
a upper
注意:[a-z]需要放在[A-Z]后面,因为bash中[a-z]包括[A-Z],不过我们也可以使用[[:lower:]]代表小写字母,[[:upper:]]代表大写字母
边栏推荐
- Programmers architecture practice way: software architecture basic concepts and thinking
- 增加WebView对localStorage的支持
- The way of programmer architecture practice: how to design a sustainable evolution system architecture?
- 国内数字藏品与国外NFT主要有以下六大方面的区别
- 用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
- 【冒泡排序以及奇数偶数排列】
- 技术总监需要会些什么?也太难了!
- LyScript implements memory stack scanning
- 【JDBC以及内部类的讲解】
- [Star Project] Little Hat Plane Battle (9)
猜你喜欢
![[Detailed explanation of binary search plus recursive writing method] with all the code](/img/51/c4960575a59f8ca7f161b310e47b27.png)
[Detailed explanation of binary search plus recursive writing method] with all the code

性能优化|从ping延时看CPU电源管理

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

Android 技术面试准备(含面试题及答案)

微信小程序获取用户手机号码

Redis发布订阅和数据类型

Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
![LeetCode 899 有序队列[字典序] HERODING的LeetCode之路](/img/95/1b63cfb25b9e0802666114f089fcb8.png)
LeetCode 899 有序队列[字典序] HERODING的LeetCode之路

本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现

第四课 标识符、关键字、变量、变量的分类和作用域、常量
随机推荐
第四课 标识符、关键字、变量、变量的分类和作用域、常量
RTP协议分析
Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
3分钟实现内网穿透(基于ngrok实现)
【一起学Rust 基础篇】Rust基础——变量和数据类型
【JS 逆向百例】某网站加速乐 Cookie 混淆逆向详解
【MySQL】数据库进阶之索引内容详解(上篇 索引分类与操作)
字节最爱问的智力题,你会几道?
后台图库上传功能
机器学习(第一章)—— 特征工程
用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
Programmers architecture practice way: software architecture basic concepts and thinking
Android 技术面试准备(含面试题及答案)
字符串本地化和消息字典(二)
87.(cesium之家)cesium热力图(贴地形)
asdn涨薪技术之apifox+Jenkins如何玩转接口自动化测试
XDR平台架构与关键技术解析
Summary of redis basics - data types (strings, lists, sets, hashes, sets)
距LiveVideoStackCon 2022 上海站开幕还有3天!
卷起来!阿里高工携18位高级架构师耗时57天整合的1658页面试总结