5.3 Shell 计算
5.3.1 Shell (()):对整数进行数学运算
(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。
双小括号 (( )) 的语法格式为:
(( 表达式 ))
表达式可以只有一个,也可以有多个,多个表达式之间以逗号,分隔。对于多个表达式的情况,以最后一个表达式的值作为整个 (( )) 命令的执行结果。
可以使用 $ 获取 (( )) 命令的结果,这和使用 $ 获得变量值是类似的。
表 1:(( )) 的用法 运算操作符/运算
命令 | 说明 |
---|---|
((a=10+66)) ((b=a-15)) ((c=a+b)) | 这种写法可以在计算完成后给变量赋值。以 ((b=a-15)) 为例,即将 a-15 的运算结果赋值给变量 c。 |
a=$((10+66)) b=$((a-15)) c=$((a+b)) | 可以在 (( )) 前面加上$符号获取 (( )) 命令的执行结果,也即获取整个表达式的值。 |
((a>7 && b==c)) | (( )) 也可以进行逻辑运算,在 if 语句中常会使用逻辑运算。 |
echo $((a+10)) | 需要立即输出表达式的运算结果时,可以在 (( )) 前面加$符号。 |
((a=3+5, b=a+10)) | 对多个表达式同时进行计算。 |
注意:
- (()) 表达式使用变量时不用加 $ 前缀,(( )) 会自动解析变量名。
- 不加 $ 就不能取得表达式的结果, 类似 c=((a+b)) 这样的写法是错误的。