当前位置:网站首页>shell编程-测试
shell编程-测试
2022-08-03 11:04:00 【51CTO】
条件测试命令
条件测试:判断需求是否满足,有测试过程来实现
实现评估布尔申明,以便在条件性环境下执行
命令若执行为真,则状态码变量$?返回0
命令若执行为假,则状态码变量$?返回1
条件测试命令:
test 表达式
[空格 表达式 空格] 和test等价,建议使用[]
[[空格 表达式(支持正则) 空格 ]]
变量测试
[ -v NAME ] 判断变量是否定义

[ -R NAME ] 判断变量是否定义并且被引用 ;bash 4.4新特性


数值测试
-eq 是否等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于等于
-le 小于等于


字符串测试
test和[]方式
-z NAME 字符串是否为空,没定义或空为真,不空为假

-n NAME 字符串是否不空,不空为真,空为假 NAME等同

NAME1 = NAME2 是否等同,=前后有空格


NAME1 != NAME2 是否不能等同

> ascii码是否大于ascii码
< 是否小于
[[ ]] 用法:建议需使用正则或通配符才使用
== 通配符方式


=~ 扩展正则表达式方式



IP正则表达式 ^(([1-9]?[0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([1-9][0-9]?|1[0-9]{2}|2[0-4][0-9]|25[0-5]) 包含 0.0.0
文件测试
存在性测试
-a file :同-e 是否存在

-e file :文件存在性测试,存在为真,不存在为假
-b file :文件是否是块文件
-c file :是否是字符设备文件
-d file :是否是目录文件


-f file : 是否是普通文件
-h file 或 -L file : 是否是符号链接文件

-p file : 是否为命名管道文件
-s file :是否为套接字文件
文件权限测试
-r file :是否存在且可读
-w file :是否可写
-x file :是否可执行
-u file :是否存在且拥有suid权限
-g file :是否存在且拥有sgid权限
-k file :是否存在且拥有sticky权限
注意:最终结果由用户对文件的实际权限决定,而为文件属性决定 比如root的权限

文件属性测试
-s file 文件是否为非空
-t fd 文件描述符是否在其他终端打开
-N file 上一次读取是否被修改
-O file 当前用户是否是文件属主
-G file 当前用户组是否为文件属组
FILE1 -ef FILE2 file1是否是file2的硬链接
FILE1 -nt FILE2 file1是否新于file2
FILE1 -of FILE2 file1是否旧于file2
(){}批量执行命令
(command1;command2;...)和{空格command1;command2;...;}可以将多个命令组合在一起,批量执行
()会开启一个子shell,里面的变量就只能在子shell上运行
{}不会开启子shell,变量会影响当前环境





$$ $BASHPID不同点
当您使用 $ $时,即使在子 shell 中,它也会存储创建它的父进程的进程 ID。但是 BASHPID 将存储当前进程 ID,即当在括号内调用时,它将存储子进程 ID。$PPID是相对于$$;意味着脚本文件下运行的进程ID。对于任何给定的脚本,当它运行时,它将只有一个“主”进程ID。无论您调用多少个子壳,$$将始终返回与该脚本关联的第一个进程ID。 BASHPID将向您显示当前bash实例的进程ID.
{} 不会开启子shell

组合测试条件
方式一
[ expression1 -a expression2 ] 并且关系
[ expression1 -o expression2 ] 或关系

[[]]不支持
方式二
逻辑与 && 逻辑或 ||
COMMAND1 && COMMAND2 #并且,短路与,代表条件性的AND THEN如果COMMAND1 成功,将执行COMMAND2,否则,将不执行COMMAND2
COMMAND1 || COMMAND2 #或者,短路或,代表条件性的OR ELSE如果COMMAND1 成功,将不执行COMMAND2,否则,将执行COMMAND2
! COMMAND #非,取反

判断ip是否可ping通,只能先 && 在前 ||在后 不能对调

判断账户是否存在,如不存在则创建
边栏推荐
- C#/VB.NET 从PDF中提取表格
- 【Star项目】小帽飞机大战(九)
- Depth study of 100 cases - convolution neural network (CNN) to realize the clothing image classification
- LeetCode第三题(Longest Substring Without Repeating Characters)三部曲之二
- 直播弱网优化
- ARIMA实现(亲测可用)
- Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
- MySQL - 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded
- Question G: Word Analysis ← Questions for the second provincial competition of the 11th Blue Bridge Cup Competition
- "Global Digital Economy Conference" landed in N World, Rongyun provides communication cloud service support
猜你喜欢

Matplotlib

再谈“雷克萨斯”安全装置失效!安全手册疑点重重,网友:细思极恐

Basic using MySQL database
![LeetCode 899 有序队列[字典序] HERODING的LeetCode之路](/img/95/1b63cfb25b9e0802666114f089fcb8.png)
LeetCode 899 有序队列[字典序] HERODING的LeetCode之路

MapReduce中ETL数据清洗案例

实至名归!九章云极DataCanvas公司荣获智能制造领域多项殊荣

云原生 Dev0ps 实践

"Global Digital Economy Conference" landed in N World, Rongyun provides communication cloud service support
![[Star Project] Little Hat Plane Battle (9)](/img/e3/c7d2728080bcdccc181a7e5c50ee6f.png)
[Star Project] Little Hat Plane Battle (9)

Classical Architecture and Memory Classification of Embedded Software Components
随机推荐
SAP 电商云 Spartacus UI 的 External Routes 设计明细
怎么在外头使用容器里php命令
MATLAB Programming and Applications 2.6 Strings
【输出一个整数的的每一位,由高到低输出。使用递归和不使用递归】
MATLAB程序设计与应用 2.7 结构数据与单元数据
在 Chrome 开发者工具里通过 network 选项模拟网站的离线访问模式
Babbitt | Metaverse daily must-read: Players leave, platforms are shut down, and the digital collection market is gradually cooling down. Where is the future of the industry?...
Skills required to be a good architect: How to draw a system architecture that everyone will love?What's the secret?Come and open this article to see it!...
完全背包问题
直播弱网优化
build --repot
「全球数字经济大会」登陆 N 世界,融云提供通信云服务支持
袋鼠云思枢:数驹 DTengine,助力企业构建高效的流批一体数据湖计算平台
云原生 Dev0ps 实践
[Star Project] Little Hat Plane Battle (9)
MATLAB程序设计与应用 2.6 字符串
Traceback (most recent call last): File
本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现
成为优秀架构师必备技能:怎样才能画出让所有人赞不绝口的系统架构图?秘诀是什么?快来打开这篇文章看看吧!...
巴比特 | 元宇宙每日必读:玩家离场,平台关停,数字藏品市场正逐渐降温,行业的未来究竟在哪里?...