バッシュで多次元配列をイテレートする方法


方法1: ネストされたforループを使用する方法

この方法では、ネストされたforループを使用して多次元配列をイテレートします。以下のコード例を参考にしてください。

#!/bin/bash
# 多次元配列の定義
multidimensional_array=(
    (1 2 3)
    (4 5 6)
    (7 8 9)
)
# ネストされたforループでイテレーション
for ((i=0; i<${#multidimensional_array[@]}; i++)); do
    for ((j=0; j<${#multidimensional_array[i][@]}; j++)); do
        echo "要素 (${i},${j}): ${multidimensional_array[i][j]}"
    done
done

このコードでは、multidimensional_arrayという名前の多次元配列を定義し、ネストされたforループを使用して要素をイテレートしています。各要素のインデックスを使用して、要素の値を取得して表示しています。

方法2: 再帰関数を使用する方法

別の方法として、再帰関数を使用して多次元配列をイテレートすることもできます。以下のコード例を参考にしてください。

#!/bin/bash
# 多次元配列の定義
multidimensional_array=(
    (1 2 3)
    (4 5 6)
    (7 8 9)
)
# 再帰関数でイテレーション
function iterate_array {
    local array=("$@")
    for element in "${array[@]}"; do
        if [[ "${element[*]}" =~ [0-9]+ ]]; then
            echo "要素: $element"
        else
            iterate_array "${element[@]}"
        fi
    done
}
# 関数の呼び出し
iterate_array "${multidimensional_array[@]}"

このコードでは、iterate_arrayという再帰関数を定義し、配列の要素を再帰的にイテレートしています。要素が数値の場合はそのまま表示し、配列の場合は再帰的に関数を呼び出して要素をイテレートします。

これらの方法を使用することで、バッシュで多次元配列をイテレートすることができます。適切な方法を選択し、必要に応じてコードをカスタマイズしてください。