我试图在两个整数之间进行简单的除法计算,这将导致浮点数。我不想用bc。这种方法适用于我的不同目的,语法略有不同,但我不太清楚我在哪里弄乱。我很肯定变量被正确分配,但是一旦我尝试进行除法,我就会出错,并且实际上没有任何内容被分配给变量。有人可以帮忙吗?
提前致谢!
rate=`awk '{ shared = "'"${tempRatioArray[0]}"'"; total = "'"${tempRatioArray[1]}"'";\
printf "%3.0f\t", shared/total }' | awk '{print}'`
答案 0 :(得分:2)
这不是在awk
中使用shell变量的正确方法,并且您不需要2个awk命令。
像这样使用:
rate=$(awk -v shared="${tempRatioArray[0]}" -v total="${tempRatioArray[1]}" 'BEGIN {
printf "%.3f", (shared/total) }')
答案 1 :(得分:2)
您可以使用bc
:
bc -l <<<"scale=3; 5/2"
2.500
适应您的代码:
bc -l <<< "scale=3; ${tempRatioArray[0]} / ${tempRatioArray[1]}"