«Несмотря на получение результатов с плавающей запятой. Bash не поддерживает другие типы аргументов, кроме целых чисел, поэтому вам нужно скорее вызывать внешние инструменты, такие как bc, для вашей математики или придерживаться только целых чисел». 4.5: синтаксическая ошибка : недопустимый арифметический оператор (токен ошибки .5) - но код все еще работает, почему? Обычно я использую внешний инструмент 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]}