为什么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