Bash与printf命令的乘法

Bash与printf命令的乘法,bash,Bash,我想知道为什么下面的代码不起作用。你能给我提个建议吗 #!/bin/bash for ((i=0; i<=20; i++)) do printf "%.2f" "0.05 * $i"; done #/bin/bash for((i=0;iprintf“%.2f”“3*4”不起作用,因为“3*4”不是一个数字。它实际上就是那个字符串。无论是bash还是printf都不会将字符串解释为必须计算其值的表达式。printf都没有这种能力 要在bash中计算内容,可以使用((var=…

我想知道为什么下面的代码不起作用。你能给我提个建议吗

#!/bin/bash
for ((i=0; i<=20; i++))
do  
    printf "%.2f" "0.05 * $i";
done
#/bin/bash
for((i=0;i
printf“%.2f”“3*4”
不起作用,因为
“3*4”
不是一个数字。它实际上就是那个字符串。无论是
bash
还是
printf
都不会将字符串解释为必须计算其值的表达式。
printf
都没有这种能力

要在
bash
中计算内容,可以使用
((var=…)
$(…)
。但是,
bash
只能处理整数,不能处理浮点数

因此,在您的情况下,您必须求助于外部程序,如
dc
bc
。您还可以用空格或换行符分隔打印的数字:

for ((i=0; i<=20; i++))
do  
    printf '%.2f\n' "$(bc <<< "0.05 * $i")"
done

for((i=0;i)您如何怀疑这是正确的Bash语法?