在 Shell 中,双小括号 (( ))
是 Bash Shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活,是企业运维中常用的运算命令。
(( ))
只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。如果要进行小数运算,我们可以使用 bc 命令。
((expr))
参数 | 描述 |
---|---|
expr | 需要计算的表达式 |
将数学运算表达式放在 ((
和 ))
之间。表达式可以只有一个,也可以有多个,多个表达式之间以逗号,分隔。对于多个表达式的情况,以最后一个表达式的值作为整个 (( ))
命令的执行结果。
可以使用 $
获取 (( )) 命令的结果,这和使用 $
获得变量值是类似的。
运算命令 | 说明 |
---|---|
((a=10+66) ((b=a-15)) ((c=a+b)) | 这种写法可以在计算完成后给变量赋值。以 ((b=a-15)) 为例,即将 a-15 的运算结果赋值给变量 c。 注意,使用变量时不用加$ 前缀,(( )) 会自动解析变量名。 |
a=((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,并输入以下命令,进行算术运算:
echo $((1+1)) echo $((100-30)) echo $((10*30)) echo $((100/30))
运行后,终端输出如下:
我们看到,我们使用了 (())
实现了加减乘除运算的功能。
我们首先,打开一个 Shell,并输入以下命令,进行综合算术运算:
echo $((1+1*100-2)) echo $((100*(100+1)/2))
运行后,终端输出如下:
我们看到,我们使用了 (())
实现了算术综合运算。
我们首先,打开一个 Shell,并输入以下命令,进行逻辑运算:
echo $((3<8)) echo $((8==9))
运行后,终端输出如下:
我们看到,我们使用了 (())
实现了逻辑运算。
在 Shell 中,双小括号 (( ))
是 Bash Shell 中专门用来进行整数运算的命令,它的效率很高,写法灵活,是企业运维中常用的运算命令。
(( ))
只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。如果要进行小数运算,我们可以使用 bc 命令。