算术运算符
原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用。
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
例如:实现两个数相加
#!/bin/bash val=`expr 2 + 2` echo "Total value : ${val}"
表达式和运算符之间要有空格,可以把每个表达式和运算符都看做是一个参数传递到expr
下面是算术运算符列表,其中乘号(*)前边必须加反斜杠()才能实现乘法运算
关系运算符
关系运算符只支持数字,不支持字符串,除非字符串的值是数字。
下面是关系运算符列表
下面给出一个关系运算符的例子
#!/bin/sh a=10 b=20 if [ $a -eq $b ] then echo "$a -eq $b : a is equal to b" else echo "$a -eq $b: a is not equal to b"
注意:条件表达式要放在方括号之间,并且要有空格
布尔运算符
下面是一个布尔运算符的例子。其中-o是或运算,-a是与运算
#!/bin/sh a=10 b=20 if [ $a != $b ] then echo "$a != $b : a is not equal to b" fi if [ $a -lt 100 -a $b -gt 15 ] then echo "$a -lt 100 -a $b -gt 15 : returns true" fi if [ $a -lt 100 -o $b -gt 100 ] then echo "$a -lt 100 -o $b -gt 100 : returns true" fi
字符串运算符
下面是字符串运算符列表
下面是一个字符串运算符的例子
#!/bin/sh a="abc" b="efg" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" if [ -z $a ] then echo "-z $a : string length is zero" else echo "-z $a : string length is not zero" fi if [ -n $a ] then echo "-n $a : string length is not zero" else echo "-n $a : string length is zero" fi if [ $a ] then echo "$a : string is not empty" else echo "$a : string is empty" fi
文件测试运算符
下面是文件测试运算符列表
下面是文件测试运算符的一个例子
#!/bin/bash file="/home/runnyu/demo.c" if [ -r $file ] then echo "File has read access" else echo "File does not have read acces" fi