bash中有很多数组,比如arrKey[]
,aarT[]
,P[]
,我想对这些数组进行算术运算。正如我所检查的,数组工作得很好,但是,找到arrayP[]
的算法是错误的。
有人能帮我做这个吗?
#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]}
最佳答案
您的代码行有几个问题:
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
有效。