Mat*_*ven 14 variables bash divide
我试图在bash中划分两个var,这就是我所拥有的:
var1=3;
var2=4;
echo ($var1/$var2)
Run Code Online (Sandbox Code Playgroud)
我总是得到一个语法错误.有谁知道什么是错的?
m47*_*730 32
shell解析仅对整数除法有用:
var1=8
var2=4
echo $((var1 / var2))
Run Code Online (Sandbox Code Playgroud)
输出:2
而是你的例子:
var1=3
var2=4
echo $((var1 / var2))
Run Code Online (Sandbox Code Playgroud)
输出:0
最好使用bc:
echo "scale=2 ; $var1 / $var2" | bc
Run Code Online (Sandbox Code Playgroud)
输出:.75
比例是所需的精度
rou*_*ble 13
如果你想在没有 bc 的情况下做到这一点,你可以使用 awk:
$ awk -v var1=3 -v var2=4 'BEGIN { print ( var1 / var2 ) }'
0.75
Run Code Online (Sandbox Code Playgroud)
这里有两个可能的答案.
要执行整数除法,可以使用shell:
$ echo $(( var1 / var2 ))
0
Run Code Online (Sandbox Code Playgroud)
该$(( ... ))
语法被称为一个算术扩展.
对于浮点除法,您需要使用其他工具,例如bc
:
$ bc <<<"scale=2; $var1 / $var2"
.75
Run Code Online (Sandbox Code Playgroud)
该scale=2
语句将输出的精度设置为2位小数.