【问题标题】:how to sum double numbers in bash如何在bash中对双数求和
【发布时间】:2014-01-02 11:17:49
【问题描述】:

我想在 bash 中求和,但数字是点而不是逗号(例如:1.2333)

我试着做这个脚本

#!/bin/bash 
somma=0 
n=0 
tempo=0
val=0
while read -r val1 val2 
do 
  somma=$((somma += val1))
  tempo=$(echo $tempo += $val2 | bc) 
  n=$((n +=+1)) 
done < "ret.txt" 
echo $tempo

但我收到了这个错误:

 (standard_in) 1: syntax error

【问题讨论】:

  • 为什么不使用支持浮点数的工具?

标签: bash arithmetic-expressions


【解决方案1】:
awk '
    {sum1 += $1; sum2 += $2} 
    END {print "somma=" sum1; print "tempo=" sum2}
' filename

如果您在 bash 脚本中需要这些值,eval 该 awk 命令的输出,或者:

read somma tempo < <(
    awk '{sum1 += $1; sum2 += $2} END {print sum1, sum2}' filename
)

【讨论】:

    【解决方案2】:
    #!/bin/bash
    somma=0
    n=0
    tempo=0
    val=0
    while read -r val1 val2; do
        ((somma += val1))
        tempo=$(bc <<< "$tempo + $val2")
        ((n++))
    done < "ret.txt"
    echo "$tempo"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-07
      • 2019-02-19
      • 2011-04-22
      相关资源
      最近更新 更多