Divide two variables in bash

前端 未结 5 1858
忘掉有多难
忘掉有多难 2020-12-05 23:55

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

相关标签:
5条回答
  • 2020-12-06 00:04

    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.

    0 讨论(0)
  • 2020-12-06 00:08

    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

    0 讨论(0)
  • 2020-12-06 00:23

    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
    
    0 讨论(0)
  • 2020-12-06 00:23
    #!/bin/bash
    var1=10
    var2=5
    echo $((var1/var2))
    
    0 讨论(0)
  • 2020-12-06 00:23

    You can also use Python for this task.
    Type python -c "print( $var1 / float($var2) )"

    0 讨论(0)
提交回复
热议问题