簡體   English   中英

Bash和awk做除法

[英]Bash and awk to do division

我正在嘗試在兩個整數之間進行簡單的除法運算,這將導致浮點數。 我不想使用BC。 這種方法對我來說使用語法稍有不同的目的可以達到不同的目的,但是我不確定我在哪里弄糟。 我肯定變量已正確分配,但是一旦嘗試進行除法,我將遇到錯誤,並且實際上沒有任何內容分配給變量。 有人可以幫忙嗎?

提前致謝!

rate=`awk '{ shared = "'"${tempRatioArray[0]}"'"; total = "'"${tempRatioArray[1]}"'";\
        printf "%3.0f\t", shared/total }' | awk '{print}'` 

這不是在awk中使用shell變量的正確方法,並且您不需要兩個awk命令。

像這樣使用它:

rate=$(awk -v shared="${tempRatioArray[0]}" -v total="${tempRatioArray[1]}" 'BEGIN {
    printf "%.3f", (shared/total) }')

您可以使用bc

bc -l <<<"scale=3; 5/2"
2.500

適應您的代碼:

bc -l <<< "scale=3; ${tempRatioArray[0]} / ${tempRatioArray[1]}"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM