我在bash中有多个数组,例如arrKey[]
,aarT[]
,P[]
,我想对这些数组进行算术运算。正如我所检查的那样,数组工作正常但是,查找数组P[]
的算法是错误的。
有人可以帮帮我吗?
#The format is C[0] = (A[0,0]*B[0]) + (A[0,1]*B[1])
这是我到目前为止尝试的代码。
P[0]= $(({arrKey[0,0]} * {arrT[0]} ))+ $(({arrKey[0,1]} * {arrT[1]})) ))
echo ${P[0]}
答案 0 :(得分:3)
您的代码行有几个问题:
P[0]= $(({arrKey[0,0]} * {arrT[0]} ))+ $(({arrKey[0,1]} * {arrT[1]})) ))
=
之后还有一个空格,将其删除。
P[0]=$(({arrKey[0,0]} * {arrT[0]} ))+ $(({arrKey[0,1]} * {arrT[1]})) ))
在算术扩展之外添加两个元素是不正确的 删除其他括号:
P[0]=$(({arrKey[0,0]} * {arrT[0]} + {arrKey[0,1]} * {arrT[1]}))
使用$
或从{…}
内的变量中移除$(( … ))
:
P[0]=$(( arrKey[0,0] * arrT[0] + arrKey[0,1] * arrT[1] ))
即使没有严格要求,最好引用您的扩展:
P[0]="$(( arrKey[0,0] * arrT[0] + arrKey[0,1] * arrT[1] ))"
此外,请确保已将arrKey声明为关联数组:
declare -A arrKey
确保预期的双重索引0,0
有效。