【发布时间】:2019-12-16 06:02:30
【问题描述】:
我的 shell 脚本是这样的,
sOneCount =5
sZeroCount=12
aa=`expr $sOneCount / $sZeroCount`
successRate=`expr $aa \* 100
因为 5/12 的结果是 0.416,然后是 0.416*100,它应该给出 41.6 但我将“successRate”设为 0。 它对浮点值进行四舍五入。
我希望最终结果应该是这样的 41, 请帮助我谢谢
【问题讨论】:
-
是的,
awk将简化此操作。请至少阅读Awk Tutorial -- printf 和下面的格式说明符部分。祝你好运。 -
您不太可能使用不支持标准 POSIX 算术表达式的 Bourne 风格的 shell。请改用
aa=$(( sOneCount / sZeroCount ))和successRate=$(( aa * 100 ))。expr已过时,除了正则表达式匹配。 (但更重要的是,大多数 shell 不支持浮点运算;zsh是一个明显的例外。) -
您可以在这里找到相当全面的解决方案列表:stackoverflow.com/questions/12722095/…
标签: linux shell awk programming-pearls