Shell数学计算

Shell数学计算教程

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

(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。如果要进行小数运算,我们可以使用 bc 命令。

Shell (( ))详解

语法

((expr))

参数

参数 描述
expr 需要计算的表达式

说明

将数学运算表达式放在 (()) 之间。表达式可以只有一个,也可以有多个,多个表达式之间以逗号,分隔。对于多个表达式的情况,以最后一个表达式的值作为整个 (( )) 命令的执行结果。

可以使用 $ 获取 (( )) 命令的结果,这和使用 $ 获得变量值是类似的。

Shell算术运算案例

案例

运算命令 说明
((a=10+66) ((b=a-15)) ((c=a+b)) 这种写法可以在计算完成后给变量赋值。以 ((b=a-15)) 为例,即将 a-15 的运算结果赋值给变量 c。 注意,使用变量时不用加$前缀,(( )) 会自动解析变量名。
a=((10+66)b=((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加减乘除运算

我们首先,打开一个 Shell,并输入以下命令,进行算术运算:

echo $((1+1)) echo $((100-30)) echo $((10*30)) echo $((100/30))

运行后,终端输出如下:

02_Shell数学运算.png

我们看到,我们使用了 (()) 实现了加减乘除运算的功能。

Shell综合运算

我们首先,打开一个 Shell,并输入以下命令,进行综合算术运算:

echo $((1+1*100-2)) echo $((100*(100+1)/2))

运行后,终端输出如下:

03_Shell数学运算.png

我们看到,我们使用了 (()) 实现了算术综合运算。

Shell逻辑运算

我们首先,打开一个 Shell,并输入以下命令,进行逻辑运算:

echo $((3<8)) echo $((8==9))

运行后,终端输出如下:

04_Shell数学运算.png

我们看到,我们使用了 (()) 实现了逻辑运算。

Shell数学计算总结

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

(( )) 只能进行整数运算,不能对小数(浮点数)或者字符串进行运算。如果要进行小数运算,我们可以使用 bc 命令。