我是BASH的新手,并且了解到printf和echo都写入标准输出。但是,我看了下面的示例,该示例从输入中读取一个表达式,并将结果计算为小数点后3位的精度:
read exp
printf "%.3f\n" "$(echo $exp | bc -l)"
我不明白为什么将echo作为printf
声明中的参数传递到这里。还有其他方法可以仅使用来表示该语句echo
吗?
之后read exp
,您可以使用echo
以下方法:
$ echo "scale=3; $exp/1" | bc
9.456
但是请注意,此命令不需要echo
:
$ bc <<< "scale=3; $exp/1"
9.456
编辑:为了获得舍入的结果,您必须使用printf
内置的bash,因为bc
不能舍入值。
以下命令按预期方式工作:
echo "scale=4; $exp" | bc | xargs printf "%.3f\n"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句