IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 自动化运维必备之Shell脚本的条件语句,超详细讲解! -> 正文阅读

[系统运维]自动化运维必备之Shell脚本的条件语句,超详细讲解!

Shell编程之条件语句



前言


1. test

作用:测试表达式是否成立,若成立返回0,否则返回其他数值。

格式:

格式1:test 条件表达式
格式2:[ 条件表达式 ]  #注意中括号和表达式中间需要一个空格[[ 条件格式 ]]

实例1:测试文件是否存在
请添加图片描述
实例2:测试是否为文件
请添加图片描述

总结:Shell 环境根据命令执行后的返回状态值 ($?) 来判断是否执行成功,当返回值为0时表示成功,否则非0值表示失败或异常。使用专门的测试工具——test命令,可以对特定条件进行测试,并根据返回值来判断条件是否成立(返回值为0表示条件成立)

2. 文件测试

  • 文件测试指的是根据给定的路径名称,判断对应的是文件还是目录,或者判断文件是否可读、可写、可执行等。文件测试的常见操作选项如下,使用时将测试对象放在操作选项之后即可。
选项说明
-d测试是否为目录(Directory)
-e测试目录或文件是否存在(Exist)
-f测试是否为文件(File)
-r测试当前用户是否有权限读取(Read)
-w测试当前用户是否有权限写入(Write)
-x测试当前用户是否有权限执行(eXcute)
-b测试是否为设备文件
-c测试是否为字符设备文件
-s测试是否存在且文件大小为空
-L测试是否为软链接文件

-a:定义文件是否存在为真(与-e 用法类似)

实例:
请添加图片描述

执行条件测试操作以后,通过预定义变量$?可以获得测试命令的返回状态值,从而判断该条件是否成立。例如,执行以下操作可测试目录/media/是否存在,如果返回值$?为 0, 表示存在此目录,否则表示不存在或者虽然存在但不是目录。

3. 数值比较

格式:[ 整数1 操作符 整数2 ]

  • 整数值比较指的是根据给定的两个整数值,判断第一个数与第二个数的关系,如是否大于、等于、小于第二个数。整数值比较的常用操作,选项如下,使用时将操作选项放在要比较的两个整数之间。
常用测试操作符说明
-eq等于(Equal)
-ne不等于(Not Equal)
-gt大于(Greater Than)
-It小于(Lesser Than)
-le小于或等于(Lesser orEqual)·
-ge大于或等于(Greateror Equal)

实例1:
请添加图片描述
实例2:
请添加图片描述

4.字符串比较

  • 字符串比较通常用来检查用户输入、系统环境等是否满足条件,在提供交互式操作的Shell脚本中,也可用来判断用户输入的位置参数是否符合要求。字符串比较的常用操作选项如下。
字符串说明
=字符串内容相同
!=字符串内容不同,!号表示相反的意思
z字符串内容为空,对于未定义或赋予空值的变量将视为空串

实例1:
请添加图片描述
实例2:
请添加图片描述

5. 逻辑测试

格式:

格式1∶	[ 表达式1 ] 操作符 [ 表达式2 ]…
格式2∶	命令1 操作符 命令2…
  • 逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同的条件时,根据这些条件是否同时成立或者只要有其中一个成立等情况,需要有一个测试的过程。

  • 常用的逻辑测试操作如下,使用时放在不同的测试语句或命令之间。
    -a或&&∶ 逻辑与,"而且"的意思
    -o或||∶ 逻辑或,"或者"的意思
    !∶逻辑否

实例:
请添加图片描述

6. if语句

6.1 单分支语句

格式:

if [ 条件判断式 ]; then
	当条件判断成立时,可以进行的命令工作内容
fi 					#这里将if反过来写,结束if语句的意思

原理图:
请添加图片描述
实例:
请添加图片描述

6.2 双分支语句

格式:

if [ 条件判断式 ]; then
	当条件判断成立时,可以进行的命令工作内容
else	
	当条件判断不成立时,可以进行的命令工作内容
fi 		

原理图:
请添加图片描述
实例:
请添加图片描述

6.3 多分支语句

格式:

if [ 条件判断式 ]; then
	当条件判断成立时,可以进行的命令工作内容
elif [ 条件判断式二 ]; then
	当条件判断成立时,可以进行的命令工作内容
else	
	当上面的条件判断都不成立时,可以进行的命令工作内容
fi 		

原理图:
请添加图片描述
实例:
请添加图片描述

7. case语句结构

格式:

case 变量名称 in
“第一个变量内容”
	程序段
	;;
“第二个变量内容”
	程序段
	;;
*)
	不包含第一个变量内容与第二个变量内容的其他程序执行段
	默认程序段
	;;
esac		

案例:设置一个简单的游戏规则
请添加图片描述


总结

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-20 16:05:36  更:2021-09-20 16:05:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:29:17-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码