当前位置:网站首页>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:条件判断语句
未完待续
边栏推荐
猜你喜欢

transition过渡&&animation动画

Summary of the stock problem of state machine dynamic programming

MySQL数据库面试题总结(2022最新版)

Optimization of aggregate mentioned at DATA AI Summit 2022

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

Error ER_NOT_SUPPORTED_AUTH_MODE Client does not support authentication protocol requested by serv

jira是什么

WMware Tools安装失败segmentation fault解决方法

Gabor滤波器学习笔记

2D Transform Module && Media Queries
随机推荐
天空云变化案例
MySQL数据库面试题总结(2022最新版)
【VisDrone数据集】YOLOV3训练VisDrone数据集步骤与结果
The difference between truncate and delete in MySQL database
[Deep learning] Detailed explanation of Transformer model
MySQL数据库进阶篇
A Brief Talk About MPI
The difference between substring and substr in MySQL
45. [Application of list linked list]
A Brief Talk About MPI
Optimization of aggregate mentioned at DATA AI Summit 2022
What are the efficient open source artifacts of VSCode
Word文件损坏如何修复
Ukraine's foreign ministry: wu was restored to complete the export of food security
MySQL笔记下
2D转换模块&&媒体查询
binglog日志追踪:数据备份并备份追踪
PHP图片添加文字水印
firewalld
常用的正则表达式