shell的测试语句

news2024/11/24 9:28:51

一、shell的条件测试语句

        在写shell脚本时,经常遇到的问题就是判断字符串是否相等,可能还要检查文件状态或进
行数字测试,只有这些测试完成才能做下一步动作。

1.1、shell脚本中的条件测试如下:

            1、文件测试

            2、字符串测试

            3、数字测试

            4、复测试

测试语句一般与后面讲的条件语句联合使用

1.2、test命令

         test的命令分为两种格式

         第一种:test condition

         第二种: [ condition ]             注意:使用方括号时,要注意在条件两边加上空格

二、文本测试

 2.1、文本测试功能

          测试文件是什么文件类型

1)按照文件类型
                        -e 文件名 文件是否存在 
                       
-s 文件名 是否为非空     (非空 里面是不是  是;有东西    不是 :没有东西)
                        -b 文件名 块设备文件
                        -c 文件名 字符设备文件
                        -d 文件名 目录文件
                        -f 文件名  普通文件

                        -L 文件名 软链接文件                     注意:要大写
                        -S 文件名 套接字文件                     注意:要大写
                        -p 文件名 管道文件

巧记“bcd-lsp                块字目 普通文件  软链接 软链接 管道”


例1

输出结果

 

 2)两个文件之间的比较


            文件1 -nt 文件2 文件1的修改时间是否比文件2新
            文件1 -ot 文件2 文件1的修改时间是否比文件2旧
            文件1 -ef 文件2 两个文件的inode节点号是否一样,用于判断是否是硬链接


 例2 

输出结果

 三、字符串测试

3.1、字符串测试功能

          字符内容和长度的比较

s1  = s2                   测试两个字符串的内容是否完全一样
s1 != s2                   测试两个字符串内容不一样
-z   s1                      测试s1 字符串的长度为0

-n   s1                      测试s1 字符串的长度不为0


 例1

 输出结果

注意在shell编程里,真,返回为0 ,   假,返回非0 

 四、数字测试

4.1、数字测试功能

           比较数字的大小

a -eq  b           测试a 与b 是否相等
a -ne  b           测试a 与b 是否不相等
a -gt   b           测试a 是否大于b
a -ge  b           测试a 是否大于等于b
a -lt    b           测试a 是否小于b
a -le   b           测试a 是否小于等于b


英文单词:equal :相等                                            shell比较符: -eq

英文单词:not  equal :不等于                                 shell比较符: -ne

英文单词:less :小于                                               shell比较符: -lt

英文单词:less  equal :小于等于                             shell比较符: -le

英文单词:greater  than  :大于                                shell比较符: -gt

英文单词:greater equal :大于等于                         shell比较符: -ge       


例子1:

 输出结果

 五、复合测试

5.1、什么是复合测试语句 

通过前面的上述测试操作,都是单一测试语句。而复合测试,字面意思,一个复合测试语句,可以存在测试文字语句、字测试符串语句、测试数字测试语句。

比如:我想知道某个文件存不存在,存在的话,是目录文件类型? 是   返回true   告知我。

5.2、复合测试语句二种形式

第一种形式:命令执行控制

&&
例1:测试 file存不存在,存在的话     是目录文件类型?      是的话,返回 true  

                 test    -e    $file   &&   test    -d    $file   &&    echo "true" 
&&左边命令执行成功(即返回0)shell才执行&&右边的命令

注意:&&的特点,存在一个不满足情况,即不执行后面的语句,退出返回:非0


||

例2:测试某数字num, 是不是在   小于等于0   或者在   大于等于200的区间。

                    test    $num   -le   0    ||   test   $num  -ge   200  

||左边的命令未执行成功,shell才执行||右边的命令

注意:如果  ||左边语句执行成功(即为真),就不执行 ||  右边的语句命令

例3,上机操作

  提示:当前目录下,有此文件(huai.txt),且为普通文件

 输出结果

分析:输入51存入num1. 不满足条件,返回1,输入260存入num2中,满足条件,返回0 

第二种形式:多重条件判定

-a(and)两边同时成立,才为真
test   -r   file   -a    -x file
file 同时具有 r 与 x 权限时,才为 true.
-o(or)两边存在一个成立,即为真
test    -r   file    -o   -x file
file 具有 r 或 x 权限时,就传回 true
!相反状态
test !   -x   file
当 file 不具有 x权限 时,回传 true

上述例子对比

 输出结果

分析:输入50存入num1. 不满足条件,返回1,输入250存入num2中,满足条件,返回0 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/366141.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SPI实验

目录 一、SPI 简介 二、硬件原理 ECSPI3_SCLK ECSPI3_MISO和ECSPI3_MOSI ECSPI3_SS0 三、I.MX6U ECSPI 简介 ECSPIx_RXDATA ECSPIx_TXDATA ECSPIx_CONREG ECSPIx_CONFIGREG ECSPIx_PERIODREG​编辑 ECSPIx_STATREG 四、ICM-20608 简介 五、代码编写 1、创建文件及文…

BACnet协议详解——应用层说明二

文章目录写在前面3 BACnet APDU的传输3.1 需确认的请求报文传输3.2 分段的需确认请求报文的传输3.3 分段的复杂确认报文的传输3.4 分段确认APDU的传输3.5 重复的APDU和报文分段3.5.1 客户端事务处理状态机的中止3.5.2 服务端事务处理状态机的中止3.5.3 重复报文的处理3.6 失效资…

使用ChatGPT需要避免的8个错误

如果ChatGPT是未来世界为每个登上新大陆人发放的一把AK47, 那么现在大多数人做的事,就是突突突一阵扫射, 不管也不知道有没有扫射到自己想要的目标。每个人都在使用 ChatGPT。但几乎每个人都停留在新手模式。 避免下面常见的8个ChatGPT的错…

基于Tkinter制作定时器,提醒做某事

基于Tkinter制作定时器 文章目录基于Tkinter制作定时器一、前言二、需要的模块三、tkinter最简单的使用四、无边框tkinter窗口的创建五、时间的获取六、完整代码七、演示效果一、前言 对于喜欢用电脑的人来说, 一旦往那里一坐,就很容易忘记时间&#x…

安全相对论 | 45亿条快递数据疑似遭泄露,他们这样说……

近期,Telegram各大频道突然大面积转发某隐私查询机器人链接,网传消息称该机器人泄露了国内45亿条个人信息,疑似电商或快递物流行业数据。随着舆论的发酵,快递股出现闪崩,多家快递公司股价下降。事件发生后,…

双碳”目标下二氧化碳地质封存技术应用前景及模型构建实践方法

2022年七月七日,工业和信息化部、发展改革委、生态环境部关于印发工业领域碳达峰实施方案的通知落地。全国各省份积极响应,纷纷出台地方指导文件,标志着我国碳减排事业的全面铺开。二氧化碳地质封存技术作为实现我国“双碳”目标的重要一环&a…

解决线程不安全问题的方法

解决线程不安全问题: 一、原子性 synchronized关键字的特性(监视锁) 1、synchronized的互斥性 通过特殊手段,让count变成原子操作 举例:上厕所,人进入后上锁,用完了出来解锁,期…

编译原理【运行时环境】—什么是活动记录、 活动记录与汇编代码的关系

系列文章戳这里👇 什么是上下文无关文法、最左推导和最右推导如何判断二义文法及消除文法二义性何时需要消除左递归什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系编译原理第三章习…

专利撰写 为什么要申请专利 申请专利对个人有什么利益关系 专利申请实例 如何申请专利 专利申请办理流程

专利撰写 专利是对发明者或创造者所创造的发明或设计提供一定期限的独占权的法律保护。撰写专利需要考虑到多方面的因素,包括发明或设计的技术性、可行性、独创性、保密性等等。以下是一些关于专利撰写的常见问题和注意事项:专利类型:专利包括…

记一次后端生成Zip文件通过浏览器下载后文件损坏,无法打开,不可预知的末端错误,下载后文件比源文件增大

记一次后端生成Zip文件问题前言问题出现排查一、流没有关好二、写入了空白字节三、没有flush定位环节一、生成二、通过SwaggerUI、PostMan进行下载三、结论解决方法前言 在项目上线前夕,临时添加了个数据导出的接口,需求是导出压缩包,选择了项…

SpringCloud - Feign远程调用

目录 Feign的远程调用 RestTemplate方式调用存在的问题 介绍与初步使用 Feign的自定义配置 Feign运行自定义配置来覆盖默认配置,可以修改的配置如下: 配置Feign日志有两种方式: Feign性能优化 Feign底层的客户端实现: 连…

MATLAB R2020a 与PreScan8.5.0 详细安装教程(图文版)

目录MATLAB安装PreScan安装每文一语MATLAB安装 MATLAB是一款数学软件,用于科学计算、数据分析和可视化等任务。以下是MATLAB的几个优势: 丰富的工具箱:MATLAB拥有多种工具箱,包括信号处理、图像处理、优化、控制系统等&#xff0…

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现

深度学习论文: EdgeYOLO: An Edge-Real-Time Object Detector及其PyTorch实现 EdgeYOLO: An Edge-Real-Time Object Detector PDF: https://arxiv.org/pdf/2302.07483.pdf PyTorch代码: https://github.com/shanglianlm0525/CvPytorch PyTorch代码: https://github.com/shangli…

SQL的四种连接-左外连接、右外连接、内连接、全连接

SQL的四种连接-左外连接、右外连接、内连接、全连接 内连接inner join…on… / join…on… 展现出来的是共同的数据 select m.Province,S.Name from member m inner join ShippingArea s on m.Provinces.ShippingAreaID; 相当于:select m.Province,S.Name from m…

Mybatis一对多查询 ,以及会遇到的各种问题解答

Mybatis一对多查询 ,以及会遇到的各种问题解答业务场景实体类,数据库方法1:连表查询,用ResultMap映射方法2:子查询进行映射业务场景 有时候前端需要表格里面嵌套表格的情况,用以展示更加详细的信息&#xf…

前端历史 --- 从HTML静态文件到前后端分离

前端历史 --- 从HTML静态文件到前后端分离1. 静态HTML2. 动态HTML --- 服务器端渲染CGI --- Common Gateway InterfaceservletASP, JSP, PHP服务器端渲染(SSR)3. 前后端分离 --- 客户端渲染JavaScriptAjax --- Asynchronous Javascript And Xml.客户端渲染1. 静态HTML 在上个世…

回溯问题(子集型回溯、组合型回溯、排列型回溯)【零神基础精讲】

来源0x3f:https://space.bilibili.com/206214 回溯分为【子集型回溯】【组合型回溯】【排列型回溯】 文章目录回溯基本概念[17. 电话号码的字母组合](https://leetcode.cn/problems/letter-combinations-of-a-phone-number/)子集型回溯(分割问题也可以看…

按键中断,红外、光电、火焰传感器中断控制LED等并打印信息

需求:按键中断,红外、光电、火焰传感器中断控制LED等并打印信息重写函数部分:void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin) {switch(GPIO_Pin){case GPIO_PIN_9:HAL_GPIO_TogglePin(GPIOE,GPIO_PIN_10);if(HAL_GPIO_ReadPin(GPIO…

浅析高速服务区交互一体机设备管理系统的建设与方向

很多高速公路服务区均缺乏现代化的服务思维、理念和手段,信息系统功能薄弱,服务区的自助服务终端存在功能单一、人机交互体验差、设备维护管理成本高、联动效率低、运营难等问题,这不仅无法支撑服务区的精细化服务和智能化管理需求&#xff0…

【视频】海康摄像头、NVR网络协议简介

1、软硬件整体架构 2、涉及的网络协议 3、协议简介 3.1 海康私有协议 设备发现SADP:进行设备的发现、激活、修改网络参数、忘记密码等; SDK:4200、系统平台的接入前端设备,协议不对外开放,但对外提供接口库; ISAPI:Intelligent Security API(智能安全API),基于HTTP传输…