当前位置:网站首页>Shell编程条件语句
Shell编程条件语句
2022-08-01 21:16:00 【Y坚定的唯物主义者】
目录
一、条件测试
- 文件测试与整数测试
- 字符串测试与逻辑测试
要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。
Shell 环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为 0 时表示成功,否则(非 0 值)表示失败或异常。使用专门的测试工具——test 命令,可以对特 定条件进行测试,并根据返回值来判断条件是否成立(返回值为 0 表示条件成立)。
1.test命令
测试表达式是否成立,若成立返回 0,否则返回其他数值
格式1:test 条件表达式
格式2:[ 条件表达式 ]常用的测试操作符

① 执行条件测试操作以后,通过预定义变量 echo( $? )可以获得测试命令的返回值,而判断该条件是否成立。

② [ ] 用法 中括号和表达式中间需要隔一个空格
属性测试
-s FILE #是否存在且非空-t FD #FD 文件描述符是否在某终端已经打开
-N FILE #文件自从上一次被读取之后是否被修改过
-O FILE #当前有效用户是否为文件属主
-G FILE #当前有效用户是否为文件属组
2.条件测试
判断某需求是否满足,需要由测试机制来实验,专用的测试表达式需要由测试命令辅助完成
常用的测试操作符

3.字符串比较
字符串比较通常用来检查用户输入、系统环境等是否满足条件,在提供交互式操作的Shell脚本中,也可用来判断用户输入的位置参数是否符合要求。字符串比较的常用操作选项如下。
- 单个 括号([ ]) : 必须要有空格,两个字符或数字之间的比较左右必须有空格,
- 条件判断:test 一种形式,[ ] 中间只能使用 = 和 != 比较字符串,如果使用 < 、 > 需要加转义字符 “ \ ” 。
- 两个括号 ( [[ ]]) : 可以用于处理逻辑命令,也可以处理字符串是否相等,且使用 < 、> 不需要转义字符 “ \ ”。
常用选项
| = | 第一个字符串 和 第二个字符串相同 |
| != | 第一个字符串与第二个字符串不相同,其中“ !”符号表示取反 |
| -z | 检查字符串是否为空(zero),对于未定义或赋予控制的变量将视为空串 |
格式1:
[ 字符串1 = 字符串2 ]或[ 字符串1 == 字符串2 ]
[ 字符串1 != 字符串2 ] #有数字最好用引号引用
格式2:
[ -z 字符串 ]#检查字符串是否为空Zero,还能判断变量是否空串
[ -n 字符串 ]#检查是否有字符串存在,如果需要用变量加双引号引用4.逻辑测试
逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同的条件时,根据这些条件是否同时成立或者只要有其中一个成立等情况,需要有一个测试的过程。
常用的逻辑测试操作如下,使用时放在不同的测试语句或命令之间。
-a或&&:逻辑与,“而且” 的意思,全真才为真
-o或||:逻辑或,“或者” 的意思,有真即为真
!:逻辑否,取反不等于的意思
逻辑符&&

逻辑符 ||

二、if语句
1、if单分支语句
if 条件测试操作
then 命令序列
fi 
2、if双分支语句
if 条件测试操作
then 命令序列1
else 命令序列2
fi

3、if多分支语句
登录后复制
if 条件测试操作1
then 命令序列1
elif 条件测试操作2
then 命令序列2
else 命令序列3
fi
学生考试成绩判断



圆的面积计算案例

边栏推荐
猜你喜欢
随机推荐
Pytorch框架学习记录12——完整的模型训练套路
XSS漏洞
那些关于DOM的常见Hook封装(一)
方舟开服需要知道的那些事
对C语言结构体内存对齐的理解
Pytorch框架学校记录11——搭建小实战完整细节
虚拟内存与物理内存之间的关系
C专家编程 第1章 C:穿越时空的迷雾 1.2 C语言的早期体验
C Expert Programming Chapter 1 C: Through the Fog of Time and Space 1.5 ANSI C Today
C陷阱与缺陷 第7章 可移植性缺陷 7.11 可移植性问题的一个例子
How to choose Visibility, Display, and Opacity when interacting or animating
LeetCode·每日一题·1374.生成每种字符都是奇数个的字符串·模拟
附录A printf、varargs与stdarg A.2 使用varargs.h来实现可变参数列表
30+的女性测试人面试经验分享
函数(二)
技术栈概览
How to encapsulate the cookie/localStorage sessionStorage hook?
和我一起写一个音乐播放器,听一首最伟大的作品
R语言 pca主成分分析的主要方法
关键字搜索:“淘宝商品 API ”






![[Chinese tree tags - CTB]](/img/f4/b985da2ff83b2a9ab4eebb8bd060bf.png)


