Linux Shell运算符总结

Linux Shell运算符

Shell中的运算符可分为算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符

1.算术运算符

a=2, b=1

Operator Description Example
+ 加法 `expr $a + $b` # 3
- 减法 `expr $a - $b` # 1
* 乘法 `expr $a \* $b` # 2, *需转义
/ 除法 `expr $a / $b' # 2
% 取余 `expr $a % $b' # 0
= 赋值 name=value
== 相等比较 [ $a == $b ] # false
!= 不等比较 [ $a != $b ] # true 

注意:条件表达式要放在方括号之间,并且要有空格,例如 [$a==$b] 是错误的,必须写成 [ $a == $b ]

2.关系运算符

关系运算符只支持数字,不支持字符串,除非字符串的值是数字 

a=1, b=2

Operator Description Example
-eq 判断是否相等 [ $a -eq $b ] # false
-ne 是否不相等 [ $a -ne $b ] # true
-gt 是否大于 [ $a -gt $b ] # false
-lt 是否小于 [ $a -lt $b ] # true
-ge 是否大于等于 [ $a -ge $b ] # false
-le 是否小于等于 [ $a -le $b ] # true

3.布尔运算符

Operator Description Example
! 非运算 [ ! false ] 返回 true
-o 或运算 [ true -o false ] 返回true
-a 与运算 [ true -a false] 返回false

4.字符串运算符

 a=abc, b=def

Operator Description Example
= 是否相等 [ $a = $b ] # false
!= 是否不相等 [ $a != $b ] # true
-z 长度是否为0 [ -z $a ] # false
-n 长度是否不为0 [ -n $a ] # true
str 是否为空 [ $a ] # false

5.文件测试运算符

文件测试运算符用于检测 Unix 文件的各种属性

Operator Description Example
-b file 是否是块设备文件 [ -b $file ] 
-c file 是否是字符设备文件 [ -c $file ] 
-d file 是否是目录 [ -d $file ]
-f file 是否是普通文件(既不是目录,也不是设备文件) [ -f $file ] 
-g file 是否设置了 SGID 位 [ -g $file ] 
-k file 是否设置了粘着位(Sticky Bit) [ -k $file ]
-p file 是否是具名管道 [ -p $file ]
-u file 是否设置了 SUID 位 [ -u $file ]
-r file 是否可读 [ -r $file ]
-w file 是否可写 [ -w $file ]
-x file 是否可执行 [ -x $file ]
-s file 是否不为空(文件大小是否大于0), 不为空返回true [ -s $file ] 
-e file 文件(包括目录)是否存在 [ -e $file ] 

猜你喜欢

转载自lixiaohui.iteye.com/blog/2359836
今日推荐