淮安市住房和城乡建设局网站首页,大连建设网节能办公室网站,免费的关键词优化软件,wordpress占500内存Bash 支持很多运算符#xff0c;包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算#xff0c;但是可以通过其他命令来实现#xff0c;例如 awk 和 expr#xff0c;expr 最常用。expr 是一款表达式计算工具#xff0c…Bash 支持很多运算符包括算数运算符、关系运算符、布尔运算符、字符串运算符和文件测试运算符。原生bash不支持简单的数学运算但是可以通过其他命令来实现例如 awk 和 exprexpr 最常用。expr 是一款表达式计算工具使用它能完成表达式的求值操作。例如两个数相加 #!/bin/bashvalexpr 2 2echo Total value : $val 运行脚本输出
Total value : 4
两点注意
表达式和运算符之间要有空格例如 22 是不对的必须写成 2 2这与我们熟悉的大多数编程语言不一样。完整的表达式要被 包含注意这个字符不是常用的单引号在 Esc 键下边。 算术运算符
先来看一个使用算术运算符的例子 #!/bin/sha10b20valexpr $a $becho a b : $valvalexpr $a - $becho a - b : $valvalexpr $a \* $becho a * b : $valvalexpr $b / $aecho b / a : $valvalexpr $b % $aecho b % a : $valif [ $a $b ]then echo a is equal to bfiif [ $a ! $b ]then echo a is not equal to bfi 运行结果
a b : 30
a - b : -10
a * b : 200
b / a : 2
b % a : 0
a is not equal to b
注意
乘号(*)前边必须加反斜杠(\)才能实现乘法运算if...then...fi 是条件语句后续将会讲解。 算术运算符列表 运算符 说明 举例加法expr $a $b 结果为 30。-减法expr $a - $b 结果为 10。*乘法expr $a \* $b 结果为 200。/除法expr $b / $a 结果为 2。%取余expr $b % $a 结果为 0。赋值a$b 将把变量 b 的值赋给 a。相等。用于比较两个数字相同则返回 true。[ $a $b ] 返回 false。!不相等。用于比较两个数字不相同则返回 true。[ $a ! $b ] 返回 true。 注意条件表达式要放在方括号之间并且要有空格例如 [$a$b] 是错误的必须写成 [ $a $b ]。 关系运算符
关系运算符只支持数字不支持字符串除非字符串的值是数字。先来看一个关系运算符的例子#!/bin/sha10b20if [ $a -eq $b ]then echo $a -eq $b : a is equal to belse echo $a -eq $b: a is not equal to bfiif [ $a -ne $b ]then echo $a -ne $b: a is not equal to belse echo $a -ne $b : a is equal to bfiif [ $a -gt $b ]then echo $a -gt $b: a is greater than belse echo $a -gt $b: a is not greater than bfiif [ $a -lt $b ]then echo $a -lt $b: a is less than belse echo $a -lt $b: a is not less than bfiif [ $a -ge $b ]then echo $a -ge $b: a is greater or equal to belse echo $a -ge $b: a is not greater or equal to bfiif [ $a -le $b ]then echo $a -le $b: a is less or equal to belse echo $a -le $b: a is not less or equal to bfi 运行结果
10 -eq 20: a is not equal to b
10 -ne 20: a is not equal to b
10 -gt 20: a is not greater than b
10 -lt 20: a is less than b
10 -ge 20: a is not greater or equal to b
10 -le 20: a is less or equal to b 关系运算符列表 运算符 说明 举例-eq检测两个数是否相等相等返回 true。[ $a -eq $b ] 返回 true。-ne检测两个数是否相等不相等返回 true。[ $a -ne $b ] 返回 true。-gt检测左边的数是否大于右边的如果是则返回 true。[ $a -gt $b ] 返回 false。-lt检测左边的数是否小于右边的如果是则返回 true。[ $a -lt $b ] 返回 true。-ge检测左边的数是否大等于右边的如果是则返回 true。[ $a -ge $b ] 返回 false。-le检测左边的数是否小于等于右边的如果是则返回 true。[ $a -le $b ] 返回 true。 布尔运算符
先来看一个布尔运算符的例子 #!/bin/sha10b20if [ $a ! $b ]then echo $a ! $b : a is not equal to belse echo $a ! $b: a is equal to bfiif [ $a -lt 100 -a $b -gt 15 ]then echo $a -lt 100 -a $b -gt 15 : returns trueelse echo $a -lt 100 -a $b -gt 15 : returns falsefiif [ $a -lt 100 -o $b -gt 100 ]then echo $a -lt 100 -o $b -gt 100 : returns trueelse echo $a -lt 100 -o $b -gt 100 : returns falsefiif [ $a -lt 5 -o $b -gt 100 ]then echo $a -lt 100 -o $b -gt 100 : returns trueelse echo $a -lt 100 -o $b -gt 100 : returns falsefi 运行结果
10 ! 20 : a is not equal to b
10 -lt 100 -a 20 -gt 15 : returns true
10 -lt 100 -o 20 -gt 100 : returns true
10 -lt 5 -o 20 -gt 100 : returns false