如何在bash中加总双数

时间:2013-12-14 20:04:26

标签: bash arithmetic-expressions

我想在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

2 个答案:

答案 0 :(得分:3)

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
)

答案 1 :(得分:1)

#!/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"