当前位置:网站首页>Shell(7)case语句
Shell(7)case语句
2022-07-26 22:44:00 【单纯的一比】
Shell(7)case语句
前言
在一个脚本中,我们经常需要做到进行交互,根据交互输入的结果来执行不同的命令,这里就需要用到case语句。
与if语句不同的是,case语句更像是一个菜单,不需要你自己进行判断,根据提前预设好的不同结果,执行与之相对应的命令。
一、read命令
read命令是我们在脚本中用来交互的主要指令,他可以根据交互输入的方式来定义变量。read 是 Shell 内置命令,如果没有进行重定向,默认就是从键盘读取用户输入的数据;如果进行了重定向,那么可以从文件中读取数据。read命令的基本格式为:
read [选项] [变量名] #变量名可以是多个
选项:
| 选项 | 内容 |
|---|---|
| -p | 显示提示信息,且不使用换行符,提示内容为 prompt。 |
| -n | 最多读取n个字符后就停止,如果中途遇到回车或换行则立即停止。 |
| -N | 最多读取n个字符后就停止,如果遇到回车或换行也不会停止。 |
| -r | 原样读取(Raw mode),不把反斜杠字符解释为转义字符。 |
| -s | 静默模式(Silent mode),不会在屏幕上显示输入的字符。当输入密码和其它确认信息的时候,这是很有必要的。 |
| -e | 在获取用户输入的时候,对功能键进行编码转换,不会直接显示功能键对应的字符。 |
| -d | 用字符串 delimiter 指定读取结束的位置,而不是一个换行符(读取到的数据不包括 delimiter)。 |
| -a | 把读取的数据赋值给数组 array,从下标 0 开始。 |
| -u | 使用文件描述符 fd 作为输入源,而不是标准输入,类似于重定向。 |
| -t | 设置超时时间,如果超过了这个时间还没有结束输入,read 不会存储任何数据。 |
例:交互式地输入你的姓名,并输出这个变量:

二、case语句
case 语句可以使脚本程序的结构更加清晰、层次分明,常用于服务的启动、重启、停止的脚本,有的服务不提供这种控制脚本,需要用case语句编写。

case 语句主要适用于以下情况:某个变量存在多种取值,需要对其中的每一种取值分别执行不同的命令序列。这种情况与多分支的 if 语句非常相似,只不过 if 语句需要判断多个不同的条件,而 case 语句只是判断一个变量的不同取值。
case语法结构:
case $变量 in #case 行尾必须为单词“in”
模式1) #每一模式必须以右括号“)”结束。
命令序列1
;; #双分号“;;”表示命令序列的结束。
模式2) #模式字符串中,可以用方括号表示一个连续的范围,如“[0-9]”超过9的数字需要用正则表达式;还可以用竖杠符号 “|”表示或,如“A|B”。
命令序列2
;;
* ) #最后的“*)”表示默认模式,其中的*相当于通配符。
命令序列3 #最后一个模式后不需要加双分号。
esac #把case倒过来写,表示结束case语句
例:输入一个字符,判断字符的类型:

END
边栏推荐
猜你喜欢

Adding, deleting, checking and modifying dynamic sequence table with C language

记一次RawImage渲染出来的场景错乱

六、if语句

Remember that the scene rendered by rawimage is disordered once

MySQL closes the problem of automatic submission of connection transactions

OJ question of sequence table

Web服务(07)——LNMP一键部署

ESP8266 AP_MODE

ESP8266 STA_TCP_Server

Esp8266 --- JSON data exchange format
随机推荐
Square root of X
物联网平台介绍
MakeFile
【unity】Unity界面scene视图[1]
Unity 一个好用的UI灰度Shader
#高级语言 各种开发软件介绍
顺序表之OJ题
梦想的旅程
Unity screenshot widget
Mqtt---- bottom (precautions)
ESP8266 STA_TCP_Client
13、 Command gadget
Producer consumer model of concurrent programming
Unity 使用NavMesh实现简易的摇杆功能
[untitled]
Unity uses navmesh to realize simple rocker function
Introduction to mathematical modeling - from real objects to mathematical modeling [2]
Data storage summary of C language
Software Foundation of software test interview questions
hdc_std