Shell 基本运算符
Shell 和其他编程语言一样,支持多种运算符,包括:
- 算数运算符
- 关系运算符
- 布尔运算符
- 字符串运算符
- 文件测试运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如,两个数相加(注意使用的是反引号 ` 而不是单引号 '):
两点注意:
- 表达式和运算符之间要有空格,例如 2+2 是不对的,必须写成 2 + 2,这与我们熟悉的大多数编程语言不一样。
- 完整的表达式要被 ` ` 包含,注意这个字符不是常用的单引号,在 Esc 键下边。
算术运算符
下表列出了常用的算术符,假定变量 a 为 10,变量 b 为 20:
例子:
a=1
b=2
echo $[$a + $b ]
echo `expr $a + $b`
结果: 3
3
① 将进行运算的表达式的的结果[ ],得到一个值。
② 表达式的结果需要用expr,和反单引号。
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
扫描二维码关注公众号,回复:
910070 查看本文章
下表列出了常用的关系运算符,假定变量 a 为 10,变量 b 为 20:
if [ $a -eq $b ] then echo "$a -eq $b : a 等于 b" else echo "$a -eq $b: a 不等于 b" fi
布尔运算符
下表列出了常用的布尔运算符,假定变量 a 为 10,变量 b 为 20:
if [ $a != $b ] then echo "$a != $b : a 不等于 b" else echo "$a != $b: a 等于 b" fi
逻辑运算符
以下介绍 Shell 的逻辑运算符,假定变量 a 为 10,变量 b 为 20:
字符串运算符
下表列出了常用的字符串运算符,假定变量 a 为 "abc",变量 b 为 "efg":
echo $[$a = $b]
不相等,输出0;
文件测试运算符
文件测试运算符用于检测 Unix 文件的各种属性。
属性检测描述如下:
file="/var/www/runoob/test.sh" if [ -r $file ] then echo "文件可读" else echo "文件不可读" fi 结果:文件可读