10.4.1 变量的算术运算
在Bash中只能进行两个整数间的运算,其结果仍为整数。要进行算术运算,需要使用expr命令或let命令。
(1)expr命令
expr命令的功能是计算表达式的值。该命令将其参数看做算术表达式,它计算该表达式的值并将结果送到标准输出设备上,其语法格式如下:
expr 操作数 运算符 操作数
其中,操作数是已经赋值的整数字符串,运算符是shell支持的算术运算符。
由于Shell是按字符形式存储变量的,所以用户必须保证参加算术运算的操作数是整数字符串。表10-4列出了shell支持的算术运算操作符。
表10-4 shell支持的算术运算操作符
expr同时还是一个命令行计算器,例如:
$expr 2 + 1
3
注意,运算符与操作数之间必须有空格。在上例中“+”号两边都有空格。否则shell会显示语法错误信息。
$expr 5 – 3
2
若expr的一个参数是变量,那么在表达式计算之前用变量值替换变量名。
$int=3
$expr $int + 4
7
使用乘号时,必须用反斜杠屏蔽其特定含义。
$expr 4 \* 5
20
(2)let命令
let是bash的内部命令,其功能Sexpr类似,也能计算算术表达式的值,其语法格式如下所示:
let 表达式 [表达式…]
let支持C语言中的大部分整数运算,可以在表达式中直接使用变量,而不需要在其前面带$符号。当let计算表达式的值时,若最后一个表达式的结果为不为0则返回0值,否则返回1值。
使用let时还需要注意的是,对于let x+y这样的式子,shell虽然计算了x+y的值,但却将结果丢弃。若希望保存结果,可以使用let sum=x+y的形式将计算结果保存在变量sum中。另外,表达式中的操作数与运算符之间不要有空格。
例如:
$x=10
$ let x=x+1
$echo $x
11
$let y=x*2
$echo $y
22
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。