当前位置:网站首页>Shell conditional statement judgment
Shell conditional statement judgment
2022-08-03 04:44:00 【G Curry Fried Rice】
目录
一、test命令
命令格式
Shell 环境根据命令执行后的返回状态值 " $? " 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值).
使用专门的测试工具 test 命令,可以对特定条件进行测试,并根据返回值(值为0)来判断是否成立.
格式1:test 条件表达式
格式2:[条件表达式]
格式3:[[条件表达式]]
区别 Double brackets can fuzzy matching
文件测试
文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等.
基本格式:
[ 操作符 文件或目录 ] (注意两端要有空格) # !代表取反 [ ! 操作符 文件或目录 ]
常用操作符 | 说明 |
---|---|
-d | 测试是否为目录(Directory) |
-e | 测试目录或文件是否存在(Exist) |
-f | 测试是否为文件(File) |
-r | 测试当前用户是否有权限读取(Read) |
-w | 测试当前用户是否有权限执行(excute) |
-x | 测试当前用户是否有权限执行 |
-b | 测试是否为设备文件 |
-c | Test whether for character device |
-s | 测试存在且文件大小为空 |
-L | 测试是否为链接文件 |
用test命令进行测试
用[ 条件表达式 ]测试
二、数值比较
整数值比较是指根据给定的两个整数值来判断第一个数与第二个数的关系,如是否大于、等于、小于第二个数.
基本格式和常用选项如下:
格式 | 说明 |
---|---|
-eq | 第一个数等于(Equal)第二个数 |
-ne | 第一个数不等于(Not Equal)第二个数 |
-gt | 第一个数大于(Greater Than)第二个数 |
-lt | 第一个数小于(Lesser Than)第二个数 |
-le | 第一个数小于或等于(Lesser or Equal)第二个数 |
-ge | 第一个数大于或等于(Greater or Equal)第二个数 |
判断当前已登录的用户数,当小于5个时输出“太少了”
三、字符串比较
String comparison format:
[ 字符串1 = 字符串2 ]
注意空格
[ 字符串1 != 字符串2 ]
[ -z 字符串 ]
常用的测试操作符:
=:The first string, and the second string is the same
!=:第一个字符串与第二个字符串不相同,其中“!”符号表示取反
-z:字符串内容为空
使用两个[[ ]] 要使用2个== The right to use the wildcard
交互操作,用户输入yes或no来确认某个任务
四、逻辑测试
逻辑测试指的是判断两个或多个条件之间的依赖关系.When the system task depends on several different conditions,Judgment is established according to the conditions at the same time or as long as there is one of the set up, and so on and so forth,Need to have a test process.
格式:
[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2
&&:逻辑与,表示而且,Only when the two terms are established,整个测试命令的返回值才为0(结果成立).
使用Test命令测试时,“&&”可改为“-a”.
||:逻辑或,表示或者,只要前后两个条件有一个成立,整个测试命令的返回值即为0(结果成立).
使用Test命令测试时,“||”可改为“-o”.
!:逻辑否,表示“不”,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立).
五、if语句
实际上使用“&&”和“||”逻辑测试已经可以完成简单的判断并执行相应的操作,但是当需要选择执行的命令语句较多时,这种方式将使执行代码显得很复杂,不好理解.而使用专用的 if 条件语句,可以更好地整理脚本结构,使得层次分明, 清晰易懂
1、单分支的if语句
语法格式:
if 条件测试操作
then
命令序列
fi
单分支if语句的执行流程:首先判断条件测试操作的结果,结果返回值为0,表示条件成立,则执行then后面的命令序列,一直遇到fi结束判断为止,继续执行其他代码.如果返回值不为0,则忽略then后面的命令序列,直接跳至fi行以后执行其他脚本代码.
2、双分支的if语句
对于双分支的选择结构,要求针对“条件成立”“条件不成立”两种情况分别执行不同的操作.
语法格式
if 条件测试操作
then
命令序列1
else
命令序列2
fi
双分支if语句的执行流程:首先判断条件测试操作的结果,如果条件成立,则执行then后面的命令序列1,忽略else及后面的命令序列2,直到遇见fi结束判断;如果条件不成立,则忽略then及后面的命令序列1,直接跳至else后面的命令序列2并执行,直到遇见fi结束判断.
Test whether the host open:
Test whether the current user isroot用户:
3、多分支的if语句
多分支结构能够根据多个互斥的条件分别执行不同的操作,实际上等同于嵌套使用的if语句.
根据 男(学号11-20)8-10分为优秀 6-7合格 女(学号1-10)7-10分为优秀 6分为合格 ,6The following all unqualified execute judgment
六、case分支语句
case 分支语句格式
case 变量值 in
模式一)
命令序列
;;
模式二)
命令序列
;;
……
*)
默认命令序列
esac
case语句注意事项
case行首必须为单词“in”,每一模式必须以单个右括号")"结束
双分号";;"表示命令序列的结束
模式字符串中,可以用方括号表示一个连续的范围,如"[0-9]",还可以用竖杠符号 “|”表示或,如“A|B”.
最后的)表示默认模式,其中的相当于通配符
边栏推荐
- Flink state
- 2022/08/02 学习笔记 (day22) 多线程
- c语言结构体中的冒泡排序
- GIS数据漫谈(五)— 地理坐标系统
- 2022 Henan Mengxin League Game (4): Zhengzhou University of Light Industry E - Sleep Well
- C#异步和多线程
- Redis缓存雪崩、缓存穿透、缓存击穿
- 「短视频+社交电商」营销模式爆发式发展,带来的好处有什么?
- Can Oracle EMCC be installed independently?Or does it have to be installed on the database server?
- Interface test framework combat (1) | Requests and interface request construction
猜你喜欢
Windows 安装PostgreSQL
【Harmony OS】【ArkUI】ets开发 图形与动画绘制
多肽介导PEG磷脂——靶向功能材料之DSPE-PEG-RGD/TAT/NGR/APRPG
CobalStrike(CS)基础超级详细版
Shenzhen Offline Registration|StarRocks on AWS: How to conduct rapid and unified analysis of real-time data warehouses
在线密码生成工具推荐
UV 裂解的生物素-PEG2-叠氮|CAS:1192802-98-4生物素接头
【生物素叠氮化物|cas:908007-17-0】价格_厂家
【Harmony OS】【ARK UI】轻量级数据存储
[Harmony OS] [ArkUI] ets development graphics and animation drawing
随机推荐
【 Harmony OS 】 【 ano UI 】 lightweight data storage
Shell条件语句判断
8.电影评论分类:二分类问题
Interface Test Framework Practice | Process Encapsulation and Test Case Design Based on Encrypted Interface
私域流量引流方法?分享购火爆的商业模式,你值得拥有
Windows 安装PostgreSQL
Unity2D horizontal board game tutorial 6 - enemy AI and attack animation
Can Oracle EMCC be installed independently?Or does it have to be installed on the database server?
Peptides mediated PEG DSPE of phospholipids, targeted functional materials - PEG - RGD/TAT/NGR/APRPG
BIOTIN ALKYNE CAS:773888-45-2价格,供应商
数字孪生园区场景中的坐标知识
How to prepare for the test interface test data
社交电商:链动2+1模式,为什么能在电商行业生存那么久?
常见亲脂性细胞膜染料DiO, Dil, DiR, Did光谱图和实验操作流程
typescript41-class类的私有修饰符
2022/08/02 Study Notes (day22) Multithreading
IO进程线程->线程->day5
用户密码加密工具
2022 Henan Mengxin League Game (4): Zhengzhou University of Light Industry E - Sleep Well
CobalStrike(CS)基础超级详细版