【发布时间】:2012-01-13 09:26:33
【问题描述】:
我对 /bin/bash 和一个使用 printf 格式化字符串的脚本有一个非常奇怪的问题。
我的脚本是这样的
rt=$(printf "%.3f" 13.234324245)
不同的是,我计算上面的数字 13.23...。当我使用 /usr/bin/zsh 时效果很好!甚至 /bin/sh 都可以做到(但它不能做 if 的东西......)
最大的问题是 /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 使用 , 而不是 .?
【问题讨论】: