欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux Shell运算符总结

程序员文章站 2022-05-02 21:36:53
...

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 ]