当前位置:网站首页>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:]]代表大写字母
边栏推荐
- LeetCode-1796. 字符串中第二大的数字
- 日常开发写代码原则
- 机器学习(第一章)—— 特征工程
- 【网络原理的概念】
- For invoice processing DocuWare, cast off the yoke of the paper and data input, automatic processing all the invoice received
- Simple implementation of a high-performance clone of Redis using .NET (1)
- 赛灵思MPSOC裸机下的 USB调试实验
- What is a smart contract?
- LeetCode刷题笔记:105.从前序与中序遍历序列构造二叉树
- GET 和 POST 有什么区别?
猜你喜欢
【一起学Rust 基础篇】Rust基础——变量和数据类型
MySQL之json数据操作
LeetCode-1796. 字符串中第二大的数字
用于发票处理的 DocuWare,摆脱纸张和数据输入的束缚,自动处理所有收到的发票
面试官:SOA 和微服务的区别?这回终于搞清楚了!
Cross-chain bridge protocol Nomad suffers hacker attack, losing more than $150 million
零拷贝、MMAP、堆外内存,傻傻搞不明白...
RICON:NER SOTA 又来!
OFDM 十六讲 4 -What is a Cyclic Prefix in OFDM
LyScript implements memory stack scanning
随机推荐
【MySQL功法】第2话 · 数据库与数据表的基本操作
fast planner中拓扑路径搜索
「全球数字经济大会」登陆 N 世界,融云提供通信云服务支持
VRRP协议的作用及VRRP+OSPF配置方法
CDH6.3.2开启kerberos认证
【LeetCode—第2题 两数之和 代码详解 】附有源码,可直接复制
LeetCode-48. 旋转图像
零信任架构分析【扬帆】
LeetCode——622.设计循环队列
【TypeScript】Why choose TypeScript?
What is the ERC20 token standard?
记住用户名案例(js)
深度学习:文本CNN-textcnn
For invoice processing DocuWare, cast off the yoke of the paper and data input, automatic processing all the invoice received
什么是Weex
[Bubble sort and odd-even sorting]
谷歌研究员被群嘲:研究员爆料AI有意识,被勒令休假
ThreadLocal源码解析及使用场景
卷起来!阿里高工携18位高级架构师耗时57天整合的1658页面试总结
【输出一个整数的的每一位,由高到低输出。使用递归和不使用递归】