8.shell脚本基础笔记-shell控制结构相关的比较操作
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) |
() | 对条件进行分组 |
请登录后再评论