【发布时间】:2020-05-05 10:44:18
【问题描述】:
“尽管会产生浮点结果。Bash 不支持除整数以外的其他类型的参数,因此您需要调用外部工具(如 bc)来进行数学运算,或者只使用整数。” 4.5: syntax error: invalid arithmetic operator (error token is ".5") - but the code still seems to work, why? 平时都是用bc外接工具修复的,现在有了一个函数不知道具体用在哪里,能帮帮我吗?
#!/bin/bash
function crossProduct {
declare -a v1=("${!1}")
declare -a v2=("${!2}")
#Note: Can't pass by reference, so the global variable must be used
vectResult[0]=$(( (v1[1] * v2[2]) - (v1[2] * v2[1]) ))
vectResult[1]=$(( - ((v1[0] * v2[2]) - (v1[2] * v2[0])) ))
vectResult[2]=$(( (v1[0] * v2[1]) - (v1[1] * v2[0]) ))
}
vect1[0]=0.3
vect1[1]=-0.3
vect1[2]=0.1
vect2[0]=0.4
vect2[1]=0.9
vect2[2]=2.3
crossProduct vect1[@] vect2[@]
echo ${vectResult[0]} ${vectResult[1]} ${vectResult[2]}
【问题讨论】:
-
$(( anything ))->$(echo "anything" | bc)