首页 > 系统相关 >shell之条件测试语句

shell之条件测试语句

时间:2024-06-30 23:21:56浏览次数:1  
标签:语句 shell 命令 test 判断 序列 测试 字符串

shell之条件测试语句

目录

一、test命令或[]中括号判断

1、test命令

test的语法
test 条件表达式 [条件表达式]
test 选项 文件
选项 作用
-d 判断是否是目录
-f 判断是否是普通文件
-b 判断是否是块设备
-c 判断是否是字符设备
-e 判断是否存在
-a 判断是否存在
-r 判断是否有读的权限
-w 判断是否有写的权限
-x 判断是否有执行的权限

例子:

image-20240513171030016

2、[]中括号

image-20240514135046772

2.1 整数值比较[]

选项 意义
-eq 表示等于
-ne 不是不等于
-gt 表示大于
-ge 表示大于等于
-lt 表示小于
-le 表示小于等于

2.2 实例操作

2.2.1 查看系统内存是否超出预定值

image-20240514142045883

2.2.2 比较两个数的大小

image-20240514143724467

2.3 字符串比较

选项 作用
= 表示字符串相同
!= 表示字符串内容不相同
-z 表示字符串内容为空
-n 表示字符串存在
2.3.1 案例:判断字符串是否相同

image-20240514150349236

2.3.2 案例:判断字符串是否为空

image-20240514145940271

2.4 逻辑测试(短路运算)

选项 作用
-a或&& 逻辑与,“而且”的意思
-o或|| 逻辑或,“或者”的意思
! 逻辑否

合并用法:只需要记住一个

cmd1&&cmd2||cmd3:表示cmd1正确执行cmd2,如果cmd1错误就执行cmd3

image-20240514152554349

2.5 双中括号(支持正则表达式和通配符)

[[ expression ]] 用法
== 左侧字符串是否和右侧的PATTERN相同
 注意:此表达式用于[[ ]]中,PATTERN为通配符
 	
=~ 左侧字符串是否能够被右侧的正则表达式的PATTERN所匹配
 注意: 此表达式用于[[  ]]中;扩展的正则表达式

image-20240515160850395

image-20240515161231147

二、if语句

1 、单分支结构

if [判断]
then
命令序列
fi

2 、双分支结构

if [判断]
then
命令序列1
else
命令序列2
fi

3、 多分支结构

if[判断1]
then
命令序列1
elif[判断2]
then
命令序列2
elif[判断3]
then
命令序列3
.....(可以有多个)
else
命令序列4
fi

三、case语句的结构

case 变量 in
条件1)
命令序列1
;;
条件2)
命令序列2
;;
......
*)
不包含第一个变量内容与第二个变量内容的其他程序执行段
默认程序段
;;
esac 

1、实例

image-20240514172025641

标签:语句,shell,命令,test,判断,序列,测试,字符串
From: https://www.cnblogs.com/shijunan2/p/18277143

相关文章

  • Shell脚本
    Shell脚本目录Shell脚本一、Shell脚本的概述1、Shell脚本的概念2、Shell脚本的应用场景3、Shell脚本的作用二、Shell编程规范1、编写脚本代码2、shell脚本的构成3、执行脚本的方式:3.1使用指定的shell解释器:(不需要脚本有执行权限)3.2路径的方式:3.3使用source和“.”执行脚本:这种一......
  • 【CNN】用MNIST测试各种CNN网络模型性能
    使用MNIST测试各类CNN网络性能,在此记录,以便按需选择网络。除了第一个CNN为自己搭的以外,其余模型使用Pytorch官方模型,这些模型提出时是在ImageNet上进行测试,在此补充在MNIST上的测试。另外时间有限,每种模型只跑一次得出测试数据,实验结果仅供参考各种参数:训练集60000、测......
  • Sybase ASE系列第四讲:常用SQL语句
    sybase常用sql语句1.sybase常用DDLSybase中DDL语句不能修改字段的数据类型,只能修改空与非空1.删除列ALTERTABLEtable_nameDELETEcolumn_namego2.增加列ALTERTABLEtable_nameADD(column_nameDATA_TYPE[NOT]NULL)go3.修改列的空与非空ALTERTABLEtable_na......
  • C语言大师之路:从零到王者/新手入门(3)选择语句
    序(一些闲话)我希望我的语言不要像专业书那样让人眼花缭乱,所以当我解释语法时,我会尽量避免使用太多专业术语,让说明更容易理解。我会用通俗易懂的语言来解释,而不是像专业书籍那样让人感到困惑。本人计划通过文章分享C语言的核心知识点和学习心得。鉴于仍处于学习阶段,文章中可......
  • Windows HLK测试
    一、环境前期准备测试服务器上安装windowsserver2016英文版;测试系统上安装windows10英文版;环境部署参考:WindowsHardwareLabKit二、部署方案WindowsHLK有两种部署方案:加入域的环境和工作组环境,因公司规模小,选择工作组环境。三、开始安装1、测试服务器上安......
  • Django 笔记 - Django Shell
    启动DjangoShell交互式界面,具体命令如下:pythonmanage.pyshell具体实例实例1.直接修改用户密码,无需原密码。在DjangoShell交互式界面下,修改admin用户密码的具体代码如下:fromdjango.contrib.auth.modelsimportUseruser=User.objects.get(username='admin'......
  • JAVA高级进阶13单元测试、反射、注解
    第十三天、单元测试、反射、注解单元测试介绍单元测试就是针对最小的功能单元(方法),编写测试代码对其进行正确性测试咱们之前是如何进行单元测试的?有啥问题?只能在main方法编写测试代码,去调用其他方法进行测试。无法实现自动化测试,一个方法测试失败,可能影响其他方......
  • 深入解析MySQL语句的执行步骤
    目录MySQL架构概述语句执行步骤总览连接管理与线程处理语法解析查询缓存语义解析与预处理查询优化执行计划生成存储引擎层执行结果集返回优化查询性能的技巧结论MySQL架构概述在深入探讨MySQL语句执行的具体步骤之前,我们先来了解MySQL的整体架构。MySQL架构主要包括以下......
  • 四、API 测试怎么做
    如何应对复杂场景的API测试?测试场景一:被测业务操作是由多个API调用协作完成背景:一个单一的前端操作可能会触发后端一系列的API调用,此时API的测试用例就不再是简单的单个API调用,而是一系列API的调用。存在情况:(1)存在后一个API需要使用前一个API返回结果的情况。......
  • 【SQL】⼀条 SQL 查询语句的执⾏顺序
    SQL查询语句的执行顺序与编写查询语句的顺序不同,理解SQL查询的执行顺序有助于更好地优化和调试SQL查询。下面是SQL查询语句的基本的执行顺序:FROM:确定数据源,包含表连接(JOIN)操作。ON:定义连接条件(对于JOIN子句)。WHERE:过滤数据,排除不符合条件的行。GROUPBY:对......