脚本:
#!/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
,但是这个小脚本可以找出错误。请指教。
答案 0 :(得分:8)
根据http://www.softpanorama.org/Scripting/Shellorama/arithmetic_expressions.shtml:
Bash不了解浮点运算。它将包含小数点的数字视为字符串。
你应该使用bc来执行这样的计算,就像在dogbane的解决方案中一样,除了你应该使用引号转义表达式,这样*
字符不会导致不必要的shell扩展。
echo "$vpct*15" | bc
答案 1 :(得分:3)
你应该使用bc进行浮点运算:
echo "$vpct*15" | bc
答案 2 :(得分:3)
除了bc
之外,您还可以尝试使用其他工具
awk -v vpct="$VPCT" 'BEGIN{print vpct * 15}'
echo $vpct | ruby -e 'print gets.to_f * 15 '
echo "$vpct 15 * p" | dc
答案 3 :(得分:0)
$(($ vpct * 15))//(添加$符号应该这样做)
答案 4 :(得分:0)
Shebang应该写成#!
无论如何$(())
仅适用于整数。
答案 5 :(得分:0)
如果你有ksh可用,它将执行浮点运算。