Shell编程之条件语句:if、case语句

              一、条件测试

               1)test命令测试

               2)整数值比较

               3)文件测试

               4)字符串比较

               5)逻辑测试

              二、if语句

               1)单分支结构

               2)双分支结构

               3)多分支语句

              三、case语句

一、条件测试

Shell环境根据命令执行后的返回状态值($?) 来判断是否执行成功。

当返回值为0(真true)时表示成功,返回值为非0值(假false) 时表示失败或异常。

test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立($?返回值为0表示条件成立)。

1)test命令测试

测试表达式是否成立,若成立返回值为0,非0值表示条件不成立。

格式1:test 条件表达式

格式2:【 条件表达式 】   #方括号【“或”】与条件表达式之间需要至少一个空格进行分割

例:

2)整数值比较

【 整数1 操作符 整数2 】

常用的测试操作符

-eq 等于(Equal)
-ne 不等于(Not Equal)
-gt 大于(Greater Than)
-lt 小于(Lesser Than)
-le 小于或等于(Lesser or Equal)
-ge 大于或等于(Greater or Equal)

例:

3)文件测试

【 操作符 文件或目录 】

常用的测试操作符

-d 测试是否为目录(Directory)
-e 测试目录或文件是否存在(Exist)
-f 测试是否为文件(File)
-r 测试当前用户是否有权限读取(Read)
-W 测试当前用户是否有权限写入(Write)
-X 测试当前用户是否有权限执行(eXcute)
-L 测试是否为符号链接

例:

-f

-d

-e

-x

4)字符串比较

格式1
【 字符串1 = 字符串2 】
【 字符串1!= 字符串2 】
格式2
【 -z 字符串 】是否空值
【 -n 字符串 】#检查是否有字符串存在

常用的测试操作符

= 字符串内容相同
字符串内容不同,!号表示相反的意思
-z 字符串内容为空
-n 字符串是否存在

例:

5)逻辑测试

格式1
【 表达式1 】 操作符 【 表达式2 】
格式2
命令1 操作符 命令2

常用的测试操作符

-a或&& 逻辑与,"而且"的意思,前后条件需都成立
-o或|| 逻辑或,"或者"的意思,只需前后条件中一个成立
逻辑否

&&、||操作符能够正常存在于【【】】条件判断结构中,但是如果出现在【】结构中的话,会报错。

例:

||

二、if语句

1)单分支结构

if 条件测试操作

  then 命令序列

fi

例:

验证

2)双分支结构

if 条件测试操作

   then 命令序列1
else 命令序列2 fi

例:

验证

3)多分支语句

if 条件测试操作1

   then 命令序列1

elif 条件测试操作2

   then 命令序列2

else

   命令序列3

fi

例:

验证

三、case语句

语法结构

case 变量值 in

模式1)
命令序列1
;;
模式2)
命令序列2
;;
*)
默认命令序列
esac

例:

验证

Shell编程之条件语句:if、case语句的更多相关文章

  1. 02 shell编程之条件语句

    Shell编程之条件语句 学习目标: 掌握shell脚本条件测试 掌握if语句编程 目录结构: 条件测试 条件测试概述 l  对特定的条件进行判断,以决定如何执行操作 l  测试的方法 方法1:tes ...

  2. if语句 条件测试 shell编程之条件语句

    shell 编程之条件语句一.条件测试  ① test命令 测试  ② 文件测试  ③ 整数值比较  ④ 字符串比较  ⑤ 逻辑测试二.if语句的结构  单分支结构  双分支结构  多分支结构三.ca ...

  3. Shell脚本的条件控制和循环语句

    条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...

  4. Shell脚本之for循环、while循环,if语句、case语句

    1. for循环一般格式: 格式1: for((条件)) do 动作 done 格式2: for 变量名 in 范围 do 动作 done1234567891011121314实验:##1. 输出数字 ...

  5. ORACLE PL/SQL 实例精解之第五章 条件控制:CASE语句

    5.1 CASE语句 1. CASE语句具有如下结构 CASE SELECTOR WHEN EXPRESSION 1 THEN STATEMENT 1; WHEN EXPRESSSION 2 THEN ...

  6. shell编程2 ---条件判断语句

    shell编程2 一.条件判断语句 1.按照文件类型进行判断 eg:test -e /etc/passwd  或者  [ -e /etc/passwd ]  &&echo yes || ...

  7. 关于shell脚本——条件测试、if语句、case语句

    目录 一.条件测试 1.1.表达说明 1.2.test命令 文件测试 1.3.整数值比较 1.4.字符串比较 1.5.逻辑测试 二.if语句 2.1.单分支结构 2.2.双分支结构 2.3.多分支结构 ...

  8. shell编程之条件语句

    目录: 一.条件测试 1.test命令测试 2.文件测试 3.字符串比较 4.逻辑测试 二.if语句 1.if单分支语句 2.if双分支语句 3.if多分支语句 三.case语句 case多分支语句 ...

  9. shell脚本学习—条件测试和循环语句

    条件测试 1. 条件测试:test [ 命令test或[可以测试一个条件是否成立,如果测试结果为真,则该命令的Exit Status为0,如果测试结果为假, 则命令的Exit Status为1(注意与 ...

随机推荐

  1. 物联网设备OTA软件升级之:升级包下载过程之旅

    OTA概述 大家好,我是一个软件升级包.这几天呢,我将会进行一次神奇的网络之旅,从开发者的电脑中,一直跑到终端嵌入式设备中. 大家都把我的这个旅游过程叫做 OTA,也就是在线升级. 那么啥叫 OTA ...

  2. 立体显示与BCN双稳态手性向列相

    立体显示与BCN双稳态手性向列相 狭缝光栅立体显示 技术介绍: 人的左右眼间距大约是65MM,左右眼透过视差光栅看到不同的视角图像,经大脑融合形成立体视觉. 技术优点: 2D/3D可切换: 低成本: ...

  3. 如何使用Nsight Compute?

    如何使用Nsight Compute? 下图command Line Argunments是指训练或测试命令,Linux下直接用测试或训练命令

  4. 「题解」agc031_e Snuke the Phantom Thief

    本文将同步发布于: 洛谷博客: csdn: 博客园: 简书. 题目 题目链接:洛谷 AT4695.AtCoder agc031_e. 题意简述 在二维平面上,有 \(n\) 颗珠宝,第 \(i\) 颗 ...

  5. Qt中的多线程与线程池浅析+实例

    1. Qt中的多线程与线程池 今天学习了Qt中的多线程和线程池,特写这篇博客来记录一下 2. 多线程 2.1 线程类 QThread Qt 中提供了一个线程类,通过这个类就可以创建子线程了,Qt 中一 ...

  6. js02

    一.<thead></thead>,<tbody></tbody>:为了使表头和表格内容分开设置样式 1.tbody里边有一个rows.length,获 ...

  7. Luat Inside | 多功能YAP物联网终端机,你不会还不知道吧?

    简洁高效是合宙产品的一个重要特点,合宙的工程师们用Demo取代繁杂的说明书,以便于开发者快速上手. 有没有可能把这个学习的过程变得更有趣,并且把技术入门难度进一步降低?作为一名Luat技术爱好者,我对 ...

  8. 框架篇:分布式全局唯一ID

    前言 每一次HTTP请求,数据库的事务的执行,我们追踪代码执行的过程中,需要一个唯一值和这些业务操作相关联,对于单机的系统,可以用数据库的自增ID或者时间戳加一个在本机递增值,即可实现唯一值.但在分布 ...

  9. 开源版本的 uTools。可支持 uTools 所有插件生态

    话不多说,先放上截图和仓库地址: 代码仓库:github 故事背景 网络抓包 之前公司内部因为开发需要,需要和后端进行接口联调,测试环境的时候,经常会涉及到一些状态改变要看交互样式的问题.比如测试需要 ...

  10. 单元测试布道二:在全新的 DDD 架构上进行单元测试

    目录 回顾 dotnet 单元测试相关的工具和知识 可测试性 不确定性/未决行为 依赖于实现:不可 mock 复杂继承/高耦合代码:测试困难 实战:在全新的 DDD 架构上进行单元测试 需求-迭代1: ...