(( ))是Bash Shell中专门用来进行整数运算的命令,它的效率很高,写法灵活。在判断命令(test和[])中只允许在比较中进行简单的算术操作,而双圆括号提供更多的数学符号
语法
((expr))
表达式可以只有一个,也可以有多个,多个表达式之间以逗号’,'分隔。对于多个表达式的情况,以最后一个表达式的值作为整个(( ))命令的执行结果
((expr, expr, expr))
可以使用$获取(( ))命令的结果,这和使用$获得变量值是类似的
echo $((expr, expr, expr))
注意事项
- (( ))只能进行整数运算,不能对小数(浮点数)或者字符串进行运算
运算符
- 运算直接使用:’+’ ‘-’ ‘*’ ‘/’ ‘%’ ‘++’ ‘–’
- 比较直接使用:’>’ ‘>=’ ‘<’ ‘<=’ ‘==’ ‘!=’
示例
#!/bin/bash
a=1
b=2
c=3
echo $((b += a, c += b, c + 1))
if ((a += 2, a == b))
then
echo "a + 2 = b"
fi
执行结果
MacBook-Pro:SourceCode zdzeng$ ./test.sh
7
a + 2 = b
MacBook-Pro:SourceCode zdzeng$