我對/ bin/bash和使用printf格式化字符串的腳本有一個很奇怪的問題。/bin/bash printf與C的其他LANG不能一起工作
我的劇本是這樣的
rt=$(printf "%.3f" 13.234324245)
與區別,我計算數13.23 ...以上。當我使用/ usr/bin/zsh時,效果很好!即使/斌/ sh可以做到這一點(但它不能做的東西...) 最大的問題是,/ bin/bash似乎不明白printf或確實有另一種格式化方式,當我不使用LANG=C
。
我的LANG變量設置爲de_AT.UTF-8
,然後我得到這個錯誤:
/path/to/script: Zeile 12: printf: 13.234324245: Ungültige Zahl.
所以它只是說,我給printf的數量是無效的......
我是否需要運行的printf以不同的方式?
編輯:這個問題似乎是對數的計算:
rt=$(printf "%.3f" $(echo "$res2 - $res1"|bc))
我怎麼能告訴BC使用的,
代替.
?
這很有趣 – 2012-01-13 09:44:45
但是那麼,當浮動是出來的BC時,我該怎麼做? sed呢? D: – reox 2012-01-13 09:46:05
在這種情況下,最簡單的事情可能是使用@ J-16的解決方案並強制LANG = C。 – 2012-01-13 10:02:13