在 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) )"
我试图在 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) )"