Shell 运算符

shell 运算符

参考:Unix / Linux - Shell Basic Operators

算数运算符

shell 本身不支持算数运算,使用awk 或者expr来实现。

示例: 两数相加

1
2
3
4
#!/bin/sh

val=`expr 2 + 2`
echo "Total value : $val"
SHELL

结果

1
Total value : 4
SHELL

假设a=10,b=20

运算符 描述 示例
+ expr $a + $b   =  30
- expr $a - $b = -10
* expr $a \* $b = 200
/ expr $b / $a = 2
% 求余 expr $b % $a = 0
= 赋值 a = $b
== 判断相等 [ $a == $b ]
!= 不等 [ $a != $b ]

关系运算符

假设a=10, b=20

运算符 描述 示例
-eq 相等 [ $a -eq $b ] is not true.
-ne 不等 [ $a -ne $b ] is true.
-gt 大于 [ $a -gt $b ] is not true.
-lt 小于 [ $a -lt $b ] is true.
-ge 大于等于 [ $a -ge $b ] is not true.
-le 小于等于 [ $a -le $b ] is true.

逻辑运算符

假设a=10, b=20

运算符 描述 示例
! 逻辑非 [ ! false ] is true.
-o 逻辑或 [ $a -lt 20 -o $b -gt 100 ] is true.
-a 逻辑与 [ $a -lt 20 -a $b -gt 100 ] is false.

字符串运算符

假设 a=”abc”, b =”efg”

运算符 描述 示例
= 相等 [ $a = $b ]  is not true.
!= 不等 [ $a != $b ] is true.
-z 是否为空,  为空为true, 不空 false [ -z $a ]  is not true.
-n 是否非空, 非空为true, 空为false [ -n $a ] is not false.
str 是否非空,非空为true, 空为false [ $a ] is not false.

文件测试运算符

运算符 描述 示例
-d file 检测 file 是否是目录 [ -d $file ]
-f file 检测是否是普通文件 [ -f $file ]
-r file 是否可读 [ -r $file ]
-w file 是否可写 [ -w $file ]
-x file 是否可执行 [ -x $file ]
-s file 文件大小是否大于0 [ -s $file ]
-e file 文件是否存在 [ -e $file ]

Shell 运算符
https://yxibng.github.io/2022/02/25/Shell/2022-02-25-shell 运算符/
作者
yxibng
发布于
2022年2月25日
许可协议