[英]Array arithmetic in bash
我在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]}
您的代碼行有幾個問題:
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
有效。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.