8.shell脚本基础笔记-shell控制结构相关的比较操作

作者: 温新

分类: 【Linux】

阅读: 1428

时间: 2022-03-25 12:15:13

hi,我是温新,一名PHPer

做一个富含正能量的人,负能量让人讨厌

bash支持条判断和循环处理等控制结构,本篇文章是控制结构的前导记录文章。

test命令

用法:test expression

test命令用于检查某个条件是否成立,可以对 数值、字符、文件三个方面进行测试。

test 判断 expression 成立时,退出状态为0,失败为非0值。

test -e test.sh
echo $?

&& 和 ||

&&的语法:命令1&&命令2

||的命令:命令1||命令2

&&表示先执行命令1,然后在命令1的退出状态码为0时才执行命令2。也就是 命令1 成功时,才执行 命令2。

|| 先执行 命令1,若命令1的状态码为0以外的值,才执行 命令2。也就是 命令1 执行失败时才执行 命令2。

[[]]

[[]] 用于条件判断。 [[]]用于替代[]

字符串比较运算

运算符 含义
str1 = str2 str1等于str2
str1 == str2 str1等于str2
str1 != str2 str1不等于str2
-n str1 str1为非空字符串
-z str1 str1为字符串
str1 < str2 str1比str2在字典顺序上靠前
str1 > str2 str1比str2在字典顺序上靠后

整数比较

运算符 含义
int1 -eq int2 int1等于int2
int1 -ne int2 int1不等于int2
int1 -lt int2 int1小于int2
int1 -le int2 int1小于等于int2
int1 -gt int2 int1大于int2
int1 -ge int2 int1大于等于int2

文件属性判断

运算符 含义
-a file file存在(等同-e)
-b file file存在且为块设备
-c file file存在且为字符设备文件
-d file file存在且类型为目录
-e file file存在
-f file file存在且类型为普通文件
-g file file存在且已设置set-group-id标志
-h file file存在且类型为符号链接
-k file file存在且设置了粘滞位
-p file file存在且类型为命名管道
-r file file存在且具有可读权限
-s file file存在且文件大小大于0
-u file file存在且设置set-user-id标志
-w file file存在且具有可写权限
-x file file存在且具有可执行权限
-S file file存在且为socket

组合运算符

运算符 含义
条件1 -a 条件2 当条件1和条件2同时为真时,返回真(AND)
条件1 -o 条件2 当条件1和条件2其中之一为真时,返回真(OR)
!条件 取与条件相反的值(NOT)
() 对条件进行分组
请登录后再评论