Divide two variables in bash

2019-01-15 08:56发布

I am trying to divide two var in bash, this is what I've got:

var1=3;
var2=4;

echo ($var1/$var2)

I always get a syntax error. Does anyone knows what's wrong?

4条回答
老娘就宠你
2楼-- · 2019-01-15 09:33

If you want to do it without bc, you could use awk:

$ awk -v var1=3 -v var2=4 'BEGIN { print  ( var1 / var2 ) }'
0.75
查看更多
不美不萌又怎样
3楼-- · 2019-01-15 09:37
#!/bin/bash
var1=10
var2=5
echo $((var1/var2))
查看更多
甜甜的少女心
4楼-- · 2019-01-15 09:40

shell parsing is useful only for integer division:

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

output: 2

instead your example:

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

ouput: 0

it's better to use bc:

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

output: .75

scale is the precision required

查看更多
一纸荒年 Trace。
5楼-- · 2019-01-15 09:41

There are two possible answers here.

To perform integer division, you can use the shell:

$ echo $(( var1 / var2 ))
0

The $(( ... )) syntax is known as an arithmetic expansion.

For floating point division, you need to use another tool, such as bc:

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

The scale=2 statement sets the precision of the output to 2 decimal places.

查看更多
登录 后发表回答