错误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))//(加$符号应该这样做)
答
您应该使用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可用,它会做算术浮动。
也许:vpct =“5.3”? – Cedric 2011-02-18 11:41:36
- 我不能尝试这些解决方案,但会很高兴,如果其中一个为你工作:) – Cedric 2011-02-18 11:42:02
./abc.sh:行5:5.3 * 15:语法错误:无效算术运算符(错误标记为“。 3 * 15“) 都不能工作 – 2011-02-18 11:44:13