精通 Bash 中变量的除法

在 Bash 中编写脚本时,您会遇到的常见任务之一是对变量执行算术运算,特别是除法。这个过程可能看起来很简单,但由于 Bash 默认情况下缺乏浮点支持,因此需要仔细注意。 在本文中,我们将深入研究 Bash 中除变量的几种方法,并且您将了解如何处理 Bash 中缺乏浮点除法的情况。
使用 'expr' 命令
您可以在 Bash 中用于除法的命令之一是 expr
。 此命令会评估一个表达式并将结果打印到控制台。 基本语法是
x=60 y=-3 result=$(expr $x / $y) echo "结果:$result"
在这种情况下,x
的值除以 y
,结果存储在 result
变量中。 务必记住,除法运算符 /
前后的空格非常重要。 如果没有空格,则提供给 expr
命令的表达式将被评估为字符串,从而导致语法错误。
但是,expr
命令有局限性。 它仅支持整数除法,这意味着如果结果应该是浮点数,它将被截断为整数。 此外,它不能接受浮点数作为输入。
利用双括号
执行除法的另一种方法是使用双括号语法。 此语法是 Bash 中算术运算的简写方法
x=60 y=-9 result=$(($x / $y)) echo "结果:$result"
与 expr
命令不同,双括号语法不需要除法运算符前后有空格。 但是,它仍然只支持整数除法,并且不接受浮点数作为输入。
使用 'printf' 获取精度
printf
命令是 Bash 中另一个方便的除法工具。 它可以返回浮点数,为您提供更精确的结果
x=60 y=-9 printf "%.4f\n" $((10**4 * x/y))e-4
在此示例中,x
首先乘以 10^4,然后除以 y
。 格式说明符 %.4f\n
将输出格式化为小数点后有四位数字的浮点数。 但是,请注意,分子和分母仍然必须是整数。
利用 'bc' 命令
bc
(Basic Calculator) 命令是 Bash 中最通用的除法工具之一。 与以前的方法不同,它允许使用浮点数作为输入
x=10.5 y=-2 echo "scale=4; $x / $y" | bc
在这里,scale=4
指定结果中小数点后的位数。 此外,您可以通过使用 shell 管道 |
将 shell 变量与 bc
命令一起使用。
结论
除法是 Bash 脚本中的基本操作。 通过利用 expr
命令、双括号语法、printf
和 bc
命令,您可以有效地在 Bash 中除两个变量。 请记住,根据您是否需要整数或浮点除法,以及您的变量是整数还是浮点数,来选择正确的工具。