Shell (()):对整数进行数学运算

1年前 (2024-04-27)
双小括号 (( )) 是 Bash Shell 中专门用来进行整数运算的令,它的效率很高,写法灵活,是企业运维中常用的运算令。

注意:(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。后续讲到的 bc 令可以用于小数运算。

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))

可以在 (( )) 前面加上$符号获取 (( )) 令的执行结果,也即获取整个表达式的值。以 c=$((a+b)) 为例,即将 a+b 这个表达式的运算结果赋值给变量 c。

注意,类似 c=((a+b)) 这样的写法是错误的,不加$就不能取得表达式的结果。

((a>7 && b==c))

(( )) 也可以进行逻辑运算,在 if 语句中常会使用逻辑运算。

echo $((a+10))

需要立即输出表达式的运算结果时,可以在 (( )) 前面加$符号。

((a=3+5, b=a+10))

对多个表达式同时进行计算。


在 (( )) 中使用变量无需加上$前缀,(( )) 会自动解析变量名,这使得代码更加简洁,也符程序员的书写习惯。

Shell (( )) 实例演示

【实例1】利用 (( )) 进行简单的数值计算。

[c.biancheng网站站点" rel="nofollow" />

[c.biancheng网站站点" rel="nofollow" />

[c.biancheng网站站点" rel="nofollow" />

[c.biancheng网站站点" rel="nofollow" />

[c.biancheng网站站点" rel="nofollow" />