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