配列要素の合計

配列要素の合計

私はbashスクリプトを学ぶのが初めてで、このコードを書く方法が混乱しています。

array1=(23 34 23 12 11 32 12 12 12 21)
array2=(12 13 14 43 42 23 32 11 10 22)

これは2つの配列で、要素の合計(23 + 12、34 + 13など)を取得する必要があります。出力は、Result 1: xx配列内のすべての10要素の(合計)でなければなりません。 Cスタイルループを使用してこれをどのようにコーディングできますか?

ベストアンサー1

別のオプションは次のとおりです。

#!/bin/bash

array1=(23 34 23 12 11 32 12 12 12 21)
array2=(12 13 14 43 42 23 32 11 10 22)

for ((i = 0; i < ${#array1[@]} && i < ${#array2[@]}; i++)); do
    printf "Result %2d: %d\n" $((i + 1)) $((array1[i] + array2[i]))
done

例を実行してください:

Result  1: 35
Result  2: 47
Result  3: 37
Result  4: 55
Result  5: 53
Result  6: 55
Result  7: 44
Result  8: 23
Result  9: 22
Result 10: 43

スクリプトはゼロから始まり、最も短い配列の長さまでループで実行されます(将来の変更によって、ある配列が他の配列よりも長くなる場合に備えて)。ループを通過するたびにi番目の項目の結果を印刷します。

おすすめ記事