脚本:
#!/bin/bash
vpct=5.3
echo $((vpct*15))
Run Code Online (Sandbox Code Playgroud)
错误:
./abc.sh: line 5: 5.3: syntax error: invalid arithmetic operator (error token is ".3")
Run Code Online (Sandbox Code Playgroud)
我知道我不需要一个脚本来繁殖5.3 * 15,但这个小脚本可以找出错误.请指教.
根据http://www.softpanorama.org/Scripting/Shellorama/arithmetic_expressions.shtml:
Bash不了解浮点运算.它将包含小数点的数字视为字符串.
您应该使用bc来执行此类计算,就像在dogbane的解决方案中一样,除了您应该使用引号转义表达式,这样该*字符不会导致不必要的shell扩展.
echo "$vpct*15" | bc
Run Code Online (Sandbox Code Playgroud)
此外bc,还有其他工具可以尝试
awk -v vpct="$VPCT" 'BEGIN{print vpct * 15}'
echo $vpct | ruby -e 'print gets.to_f * 15 '
echo "$vpct 15 * p" | dc
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24796 次 |
| 最近记录: |