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