当前位置:网站首页>Shell脚本-case in语句
Shell脚本-case in语句
2022-07-01 08:36:00 【小蜗牛的路】
代码
#!/bin/bash
printf "Input integer number: "
read num
case $num in
1)
echo "Monday"
;;
2)
echo "Tuesday"
;;
3)
echo "Wednesday"
;;
4)
echo "Thursday"
;;
5)
echo "Friday"
;;
6)
echo "Saturday"
;;
7)
echo "Sunday"
;;
*)
echo "error"
esac
输出:
Input integer number:3
Wednesday
语法
case expression in
pattern1)
statement1
;;
pattern2)
statement2
;;
pattern3)
statement3
;;
……
*)
statementn
esac
case,in,esac是关键字,expression 表示表达式,pattern 表示匹配模式。
case 会将 expression 的值与 pattern1、pattern2、pattern3 逐个进行匹配:
- 如果 expression 和某个模式(比如 pattern2)匹配成功,就会执行这模式(比如 pattern2)后面对应的所有语句(该语句可以有一条,也可以有多条),直到遇见双分号
;;才停止;然后整个 case 语句就执行完了,程序会跳出整个 case 语句,执行esac后面的其它语句。 - 如果 expression 没有匹配到任何一个模式,那么就执行
*)后面的语句(*表示其它所有值),直到遇见双分号;;或者esac才结束。*)相当于多个 if 分支语句中最后的 else 部分。这里的;;和*)就相当于其Java中的 break 和 default。
对*)的几点说明:
- Shell case in 语句中的
*)用来“托底”,万一 expression 没有匹配到任何一个模式,*)部分可以做一些“善后”工作,或者给用户一些提示。 - 可以没有
*)部分。如果 expression 没有匹配到任何一个模式,那么就不执行任何操作。
除最后一个分支外(这个分支可以是普通分支,也可以是*)分支),其它的每个分支都必须以;;结尾,;;代表一个分支的结束,不写的话会有语法错误。最后一个分支可以写;;,也可以不写,因为无论如何,执行到 esac 都会结束整个 case in 语句。
边栏推荐
- Configuration and startup of Chang'an chain synchronization node
- Shell脚本-echo命令 转义符
- win7 pyinstaller打包exe 后报错 DLL load failed while importing _socket:参数错误
- Nacos - gestion de la configuration
- 《MATLAB 神经网络43个案例分析》:第30章 基于随机森林思想的组合分类器设计——乳腺癌诊断
- 避免按钮重复点击的小工具bimianchongfu.queren()
- The use of word in graduation thesis
- 日常办公耗材管理解决方案
- Suivi des cibles de manoeuvre - - mise en oeuvre du modèle statistique actuel (modèle CS) filtre Kalman étendu / filtre Kalman sans trace par MATLAB
- MATLAB小技巧(16)矩阵特征向量特征值求解一致性验证--层次分析
猜你喜欢

FreeRTOS学习简易笔记

Nacos - Configuration Management

Audio audiorecord create (I)

Centos7 shell脚本一键安装jdk、mongo、kafka、ftp、postgresql、postgis、pgrouting

Guidelines and principles of did

【MFC开发(17)】高级列表控件List Control

What is the material of 15CrMoR, mechanical properties and chemical analysis of 15CrMoR

Nacos - gestion de la configuration

Advanced C language pointer (Part 2)

如何一站式高效管理固定资产?
随机推荐
Serial port to WiFi module communication
性能提升2-3倍!百度智能云第二代昆仑芯服务器上线
基于Gazebo的无人机管道检测
R语言入门
C语言指针的进阶(下)
Matlab [functions and images]
[JS reverse] MD5 encryption parameter cracking
【js逆向】md5加密参数破解
Intelligent constant pressure irrigation system
Only in China! Alicloud container service enters the Forrester leader quadrant
[MFC development (16)] tree control
Do you know how data is stored? (C integer and floating point)
19Mn6 German standard pressure vessel steel plate 19Mn6 Wugang fixed binding 19Mn6 chemical composition
There are many problems in sewage treatment, and the automatic control system of pump station is solved in this way
Nacos - 配置管理
MATLAB小技巧(23)矩阵分析--模拟退火
明明设计的是高带宽,差点加工成开路?
如何做好固定资产管理?易点易动提供智能化方案
《单片机原理及应用》—定时器、串行通信和中断系统
【C】 Summary of wrong questions in winter vacation