当前位置:网站首页>Shell编程之条件语句
Shell编程之条件语句
2022-07-31 00:17:00 【白给超人】
条件测试
Shell 环境根据命令执行后的返回状态值 " $? " 来判断是否执行成功,当返回值为0时表示成功,否则表示失败或异常(非0值)。
使用专门的测试工具 test 命令,可以对特定条件进行测试,并根据返回值(值为0)来判断是否成立。
test 条件表达式
[ 条件表达式 ] #条件表达式的两边都需要有空格,没有空格会报错,且此方法更为常用
[[ 条件表达式 ]]
选项:
-a 文件是否存在(-a取反会有问题 建议使用 -e)
-e 文件是否存在
-f 判断是否是普通文件
-d 判断是否是目录文件
-r 判断当前用户对文件是否可读
-w 判断当前用户对文件是否可写
-x 判断当前用户对文件是否可执行
ps:[ ] 和 [[ ]] 区别 []不支持正则核通配符 [[]]支持
对于超级管理员所有权限 :除了x 其他不适受限
1. 其他人没有rw 超级管理员也有
2. 其他人没有x 超级管理员也没有,只要其他用户有x超级管理员也有
整数比较
通式: [ 整数1 操作符 整数2 ]
操作符:
-eq 等于
-ne 不等于
-lt 小于
-gt 大于
-le 小于等于
-ge 大于等于
字符串比较
格式:
[ 字符串1=字符串2 ]
[ 字符串1!=字符串2 ]
[ -z 字符串 ]
常用的测试操作符:
=:第一个字符串和第二个字符串相同
!=:第一个字符串与第二个字符串不相同,其中“!”符号表示取反
-z:字符串内容为空
逻辑测试
逻辑测试指的是判断两个或多个条件之间的依赖关系。当系统任务取决于多个不同条件时,判断是根据这些条件同时成立还是只要有其中一个成立等情况,需要有一个测试过程。
格式:
[ 表达式1 ] 操作符 [ 表达式2 ]
命令1 操作符 命令2
常用的测试操作符:
&&:逻辑与,表示而且,只有当两个条件都成立时,整个测试命令的返回值才为0(结果成立)。
使用Test命令测试时,“&&”可改为“-a”。
||:逻辑或,表示或者,只要前后两个条件有一个成立,整个测试命令的返回值即为0(结果成立)。
使用Test命令测试时,“||”可改为“-o”。
!:逻辑否,表示“不”,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立)。
短路与(且) : &&
全真才为真,一假即为假
cmd1 && cmd2
1. 第一个命令是假的 没有必要再执行命令2 应为肯定为假
2. 第一个命令是真的 我要执行命令2后才能判断是否为真
短路或(或者): ||
一真即为真,全假才为假
cmd1 || cmd2
1. 第一个命令是真的,不需要执行命令2,应为肯定为真
2. 第一个命令是假的,才会执行命令2后 判断整个式子是否为真
if:条件判断语句
未完待续
边栏推荐
- 45.【list链表的应用】
- Unity 加载读取PPT
- 【唐宇迪 深度学习-3D点云实战系列】学习笔记
- 二叉查找树的定义,查找,插入,删除
- MySQL grant statements
- xss的绕过
- encrypted transmission process
- 在微服务中使用事件溯源的六大原因 - Herath
- Understand from the 11 common examples of judging equality of packaging types in the written test: packaging types, the principle of automatic boxing and unboxing, the timing of boxing and unboxing, a
- Summary of the stock problem of state machine dynamic programming
猜你喜欢
[In-depth and easy-to-follow FPGA learning 13---------Test case design 1]
【唐宇迪 深度学习-3D点云实战系列】学习笔记
MySQL面试题
How to adjust Chinese in joiplay simulator
边缘计算与小程序也能结合!智能家居是否能借势上台阶
从两个易错的笔试题深入理解自增运算符
Shell脚本 if语句
After writing business code for many years, I found these 11 doorways, which only experts know
Steven Giesel recently published a 5-part series documenting his first experience building an application with the Uno Platform.
Bugku sql注入
随机推荐
Strict Mode for Databases
How to install joiplay emulator rtp
第一个独立完成的千万级项目
registers (assembly language)
Point Cloud Scene Reconstruction with Depth Estimation
46.
常用的正则表达式
写了多年业务代码,我发现了这11个门道,只有内行才知道
Android安全性优化——APP加固
Game mall table establishment
DNS resolution process [visit website]
【VisDrone数据集】YOLOV3训练VisDrone数据集步骤与结果
边缘计算与小程序也能结合!智能家居是否能借势上台阶
MySQL数据库的truncate与delete区别
Word文件损坏如何修复
ES 中时间日期类型 “yyyy-MM-dd HHmmss” 的完全避坑指南
天空云变化案例
机器学习1一回归模型(二)
joiplay模拟器不支持此游戏类型怎么解决
MPI简谈