Bash 的算术运算
算术表达式
((...))
语法可以进行整数的算术运算。
$ ((foo = 5 + 5))
$ echo $foo
10
((...))
会自动忽略内部的空格,所以下面的写法都正确,得到同样的结果。
$ ((2+2))
$ (( 2+2 ))
$ (( 2 + 2 ))
这个语法不返回值,命令执行的结果根据算术运算的结果而定。只要算术结果不是0
,命令就算执行成功。
$ (( 3 + 2 ))
$ echo $?
0
上面例子中,3 + 2
的结果是5,命令就算执行成功,环境变量$?
为0
。
如果算术结果为0
,命令就算执行失败。
$ (( 3 - 3 ))
$ echo $?
1
上面例子中,3 - 3
的结果是0
,环境变量$?
为1