Linux 一些表达式和运算符

条件表达式

表达式 示例
[ expression ] [ 5 -eq 5 ]
[[ expression ]] [[ 5 -eq 5 ]]
test expression test 1 -eq 1

以下符号用于整数比较测试:

比较符 含义
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-ge 大于或等于
-le 小于或等于

以下符号用于字符串比较

符号 描述
== 等于
!= 不等于
> 根据ASCII码表判断大小,大于
< 根据ASCII码表判断大小,小于
>= 大于等于
<= 小于等于
-n 字符串长度不等于0则为真
-z 字符串长度等于0则为真
str 字符串存在则为真

注意:
使用-z或者-n判断字符串长度时,变量要加双引号

如果使用双中括号就不用双引号了

文件测试:

测试符 含义
-e 文件或目录存在为真
-f 文件存在为真
-d 目录存在为真
-r 有读权限为真
-w 有写权限为真
-x 有执行权限为真
-s 文件存在并且大小大于0为真
为 True

布尔运算符:

运算符 含义
! 非关系,将结果取反
-a AND, 且关系,在[ ]表达式中使用
-o OR, 或关系,在[ ]表达式中使用

逻辑表达式:
逻辑表达式有:&&(逻辑与)、||(逻辑或)、两者再[[ ]]和(())表达式中使用:

[[ 1 -eq 1 && 2 > 1 ]]结果为True

(( 1 == 1 && 2 > 1 ))结果为True

整数运算符:

运算符 描述
+ 加法
- 减法
* 乘法
/ 除法
% 取余

运算表达式:

运算表达式 示例
$(()) $((5+5))
$[] $[5+5]

注意:

$(())表达式还可以做三目运算:

echo $((100>99?1:2)) 如果100大于99 就返回1否则返回2

返回值不支持字符串。

猜你喜欢

转载自www.cnblogs.com/hzdwwzz/p/9906231.html