shell脚本之条件测试

简介: shell脚本之条件测试

关于条件测试命令可以使用man test命令查看


测试语句语法


1.test 测试语句


2.[ 测试语句 ]


3.[[ 测试语句 ]]


4.((测试语句))


其中1和2除了语法不一样,功能基本是一样的,而第3种语法他可以使用通配符进行匹配,第四种语法除了用于整数的比较,更多的还是进行一些整数的运算,不过平时经常用到的还是第2、3种语法结构。


条件测试类型


1.  文件测试


2.  数值测试


3.  字符串测试


4.  逻辑测试

 

文件测试


格式:


1.test 文件测试符 file


2.[ 文件测试符 file ]   #中括号的两边都需要有空格


3.[[ 文件测试符 file ]]  #中括号两边需要有空格


常用文件测试操作符:


-b: 文件是否存在,并且为块文件


-c:文件是否存在,并且为字符文件


-d: 文件是否存在,并且为一个目录(在linux下,万物皆为文件)


-e: 文件是否存在


-f: 文件是否存在,并且为普通文件


-s: 文件是否存在,并且文件大小大于零


-L: 文件是否存在,并且为链接文件


-r: 文件是否存在,并且文件可读


-w: 文件是否存在,并且文件可写


-x: 文件是否存在,并且文件可执行


file1 -ntfile2 文件1是否比文件2新(文件新旧是按照文件修改时间来区分的)


file1 -otfile2 文件1是否比文件2旧


实例:


[root@docker~]# touch wanger          #新建一个普通文件
[root@docker~]# test -f wanger && echo 0 || echo 1
0      #测试文件是否是普通文件,如果是输出0,否则输出1
[root@docker~]# [ -d wanger ] && echo 0 || echo 1
1      #测试文件是否是一个目录,如果是输出0,否则输出1
[root@docker ~]# touch wangerxiao    创建一个普通文件wangerxiao
[root@docker ~]# test wanger -nt wangerxiao &&echo 0 || echo 1
1     #比较wanger是否比wangerxiao新,如果为真输出0,否则输出1
[root@docker ~]# [ wanger -ot wangerxiao ] &&echo 0 || echo 1
0     #比较wanger是否比wangerxiao旧,如果为真输出0,否则输出1

 

字符串测试:


格式:


1.  test字符串测试符 string


2.  [ 字符串测试符 string ]


3.  [[字符串测试符 string ]]


常用字符串测试操作符:


-z string :字符串长度是否为0


-n string :字符串长度是否不为0


string1 = string2 :string1和string2是否相等


string1 != string2 :string1和string2是否不相等


实例:


[root@docker ~]# name=wanger       #定义一个变量
[root@docker ~]# [ -z $name ] && echo 0 || echo1
1           #判断字符串是否为空,为空则返回0,否则返回1
[root@docker ~]# test -n $name && echo 0 || echo1
0                 #判断字符串是否不为空,如果是则返回0,否则返回1
[root@docker ~]# [ $name != "wanger" ]&& echo 0 || echo 1
1           #判断变量是否不等于”wanger”,如果是返回0,否则返回1
[root@docker ~]# test $name = "wanger"&& echo 0 || echo 1
0                 #判断变量是否等于”wanger”,如果是返回0,否则返回1

 

数值测试:


格式:


test num1 数值测试操作符 num2


[ num1 数值测试操作符 num2 ]


[[ num 数值测试操作符 num2 ]]


((num1数值测试操作符num2))


常用数值测试操作符:


num1 -eq num2 : 数字1是否等于数字2


num1 -ge num2 : 数字1是否大于等于数字2


num1 -gt num2 : 数字1是否大于数字2


num1 -le num2 : 数字1是否小于等于数字2


num1 -lt num2 : 数字1是否小于数字2


num1 -ne num2 : 数字1是否不等于数字2


注意:以上几种操作符不能用在(())格式中,在(())中应使用”< > = != >= <=”比较符号来进行数值的比较


实例:


[root@docker ~]# test 6 -le 5 && echo 0 ||echo 1
0        #判断6是否小于等于5,如果是返回0,否则返回1
[2]+  Done                    test 64 -gt 63
[root@docker ~]# [ 6 -gt 5 ]&& echo 0 || echo 1
0       #判断6是否大于5,如果大于返回0,否则返回1
[root@docker ~]# [[ 6 = 5 ]]&& echo 0 || echo 1
1                 #判断6是否等于5,如果等于返回0,否则返回1
[root@docker ~]# ((5!=6))&&echo 0 ||echo 1
0      #判断5是否等于6,如果不等于返回0,等于则返回1

 

逻辑运算符:


-a : 相当于&&,表示逻辑与,两端条件都为真,结果为真


-o : 相当于||,表示逻辑或,两端条件只要有一个为真,结果就为真


!: 逻辑非,两端相反结果为真


实例:


test=”123”  #定义test变量
[root@docker ~]# [ ! -z $test -o $test = "123"] &&echo 0 || echo 1
0     #判断test变量是否不为空或者是否等于123,如果是返回0,在[]格式中只能使用-o和-a,而不能用&&和||
[root@docker ~]# test -z $test && test $test ="123" &&echo 0 ||echo 1
1        #判断test变量是否为空并且test变量是否等于123,如果是返回0
[root@docker ~]# [[ -z $test || $test = "123"]] &&echo 0 ||echo 1
0        #判断test变量是否为空或者test变量是否等于123,如果是返回0
相关文章
|
1天前
|
前端开发 JavaScript 测试技术
使用ChatGPT生成登录产品代码的测试用例和测试脚本
使用ChatGPT生成登录产品代码的测试用例和测试脚本
53 35
|
1天前
|
前端开发 JavaScript Java
通过ChatGPT生成测试用例和测试脚本(2)
通过ChatGPT生成测试用例和测试脚本
33 21
|
2月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
129 50
|
2月前
|
SQL 测试技术 API
如何编写API接口的自动化测试脚本
本文详细介绍了编写API自动化测试脚本的方法和最佳实践,涵盖确定测试需求、选择测试框架、编写测试脚本(如使用Postman和Python Requests库)、参数化和数据驱动测试、断言和验证、集成CI/CD、生成测试报告及维护更新等内容,旨在帮助开发者构建高效可靠的API测试体系。
|
2月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
83 2
6种方法打造出色的Shell脚本
|
2月前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
2月前
|
XML JSON 监控
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell脚本在系统管理和自动化任务中扮演着重要角色。尽管存在调试困难、可读性差等问题,但其简洁高效、易于学习和强大的功能使其在许多场景中不可或缺。通过掌握Shell脚本的基本语法、常用命令和函数,并了解其优缺点,开发者可以编写出高效的脚本来完成各种任务,提高工作效率。希望本文能为您在Shell脚本编写和应用中提供有价值的参考和指导。
99 1
|
2月前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
2月前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
44 1
|
2月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
97 2