2017-02-20 61 views
1

我需要做一個簡單的浮點運算: 我試圖同時使用BC和awk沒有成功...猛砸分配浮點結果給一個變量

remainingTime=$(((duration/numOfRevisions)*remainingRevision)) 
echo "$(($remainingTime/60)) minutes and $(($remainingTime % 60)) seconds remaining." 

所有變量都是整數(持續時間是的秒數) 我的問題是計算變量剩餘時間,以使用在第二行格式化的打印。

我在Awk

remainingTime=$(awk "BEGIN {printf \"%.2f\",${duration}/${numOfRevisions}*${remainingRevision}}‌​" 
+0

'bash'只支持整數運算。如果你想要浮點,你必須用'awk'或'bc'這樣的語言來完成。 – Barmar

+0

**我試圖同時使用BC和awk沒有成功**我沒有看到你嘗試這樣做。 – Barmar

+0

您能告訴我們您嘗試使用'bc'和'awk' – Inian

回答

1

bash嘗試不支持浮點運算。隨着bc你需要使用bc --mathlib,如果你想使用浮點值:

bc --mathlib <<< "(${duration}/${numberOfRevisions})*${remainingRevision}" 
+0

我試圖使用它,但我得到一個錯誤,似乎變量 「REMAININGTIME」 不能再格式化 REMAININGTIME = $(BC -l <​​<<「($ {時間}/$ {} numberOfRevisions)* $ {remainingRevision }「) 回聲 」$(($ REMAININGTIME/60))分鐘,剩餘的$(($ REMAININGTIME%6​​0))秒「。 – Botacco

+0

你是什麼意思? – hek2mgl