bash printf不起作用 - 小数



为什么printf不适用于最终命令printf "%s,%.2fn" "$s","$a",而额外的0.00来自什么?

当我单独运行它们时,它们按预期工作,但在最终命令中不做。

$ s="giga,fifa"; a="8309.18694444444444444444"; echo "$s"; printf "%sn" "$s"; echo -e "n";  echo "$a"; printf "%.2fn" "$a"; echo -e "n"; echo "$s,$a"; printf "%s" "$s,"; printf "%.2fn" "$a";echo;printf "%s,%.2fn" "$s","$a"
giga,fifa
giga,fifa

8309.18694444444444444444
8309.19

giga,fifa,8309.18694444444444444444
giga,fifa,8309.19
giga,fifa,8309.18694444444444444444,0.00

如何获得此输出:giga,fifa,8309.19只有一个printf命令显示两个变量?

您在bash printf中不使用 ,,而是与空间分开。0.00来自试图一次解析"$s","$a",并具有奇怪的结果 - 所有内容都被视为一个参数并将其打印为第一个字符串,因此不存在第二个参数,因此第二个参数被视为一个参数,而0则替换为默认值。这是按预期工作的:

>printf "%s,%.2fn" "$s" "$a"
giga,fifa,8309.19

最新更新