错误bash脚本算术语法

问题描述:

脚本:错误bash脚本算术语法

#!/bin/bash 
vpct=5.3 
echo $((vpct*15))  

错误:

./abc.sh: line 5: 5.3: syntax error: invalid arithmetic operator (error token is ".3") 

我知道我并不需要一个脚本来繁殖5.3 * 15,但这个小脚本挑出错误。请指教。

此外bc,还有其他的工具,你可以的工具,你可以尝试

awk -v vpct="$VPCT" 'BEGIN{print vpct * 15}' 

echo $vpct | ruby -e 'print gets.to_f * 15 ' 

echo "$vpct 15 * p" | dc 

$(($ vpct * 15))//(加$符号应该这样做)

+0

也许:vpct =“5.3”? – Cedric 2011-02-18 11:41:36

+0

- 我不能尝试这些解决方案,但会很高兴,如果其中一个为你工作:) – Cedric 2011-02-18 11:42:02

+0

./abc.sh:行5:5.3 * 15:语法错误:无效算术运算符(错误标记为“。 3 * 15“) 都不能工作 – 2011-02-18 11:44:13

您应该使用BC浮点运算:

echo "$vpct*15" | bc 

家当应该这样写#! 而且无论如何$(())只适用于整数。

根据http://www.softpanorama.org/Scripting/Shellorama/arithmetic_expressions.shtml

Bash does not understand floating point arithmetic. It treats numbers containing a decimal point as strings.

您应该使用BC进行这样的计算,就如同在罗布麻的解决方案,除了你应该使用引号逃脱表达这样*字符不引起不必要的shell扩展。

echo "$vpct*15" | bc 

如果你有KSH可用,它会做算术浮动。