在 bash 中划分两个变量

Divide two variables in bash

我试图在 bash 中划分两个变量,这就是我得到的:

var1=3;
var2=4;

echo ($var1/$var2)

我总是遇到语法错误。 有谁知道怎么了?

这里有两个可能的答案。

要执行整数除法,您可以使用 shell:

$ echo $(( var1 / var2 ))
0

$(( ... )) 语法被称为算术展开

浮点除法需要用到其他工具,如bc:

$ bc <<<"scale=2; $var1 / $var2"
.75

scale=2 语句将输出精度设置为小数点后两位。

shell解析只对整数除法有用:

var1=8
var2=4
echo $((var1 / var2))

输出: 2

改为您的示例:

var1=3
var2=4
echo $((var1 / var2))

输出: 0

最好用bc:

echo "scale=2 ; $var1 / $var2" | bc

输出: .75

scale是要求的精度

#!/bin/bash
var1=10
var2=5
echo $((var1/var2))

如果你想不使用 bc,你可以使用 awk:

$ awk -v var1=3 -v var2=4 'BEGIN { print  ( var1 / var2 ) }'
0.75

您也可以使用 Python 完成此任务。
输入 python -c "print( $var1 / float($var2) )"