簡體   English   中英

bash中的數組運算

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM