如何格式化和遍历包含数组的数组,并且每个数组包含一个数组?

Mus*_*med 1 bash shell

我正在尝试在包含在数组中的数组中创建多维。

tests=("'0' '1 2'" "'4' '5 6'")
Run Code Online (Sandbox Code Playgroud)

在测试中的每个数组中,我想要子数组。使用第一个数组“'0''1,2'”,创建另一个 for 循环以遍历子数组的内容。

Nah*_*eul 15

从 bash 4.3 开始。(3 个级别,第一个仅包含演示的一个元素):

arr01=(0 '1 2')
arr02=(4 '5 6')
arr1=(arr01 arr02)
arr=(arr1)

declare -n elmv1 elmv2

for elmv1 in "${arr[@]}"; do
    for elmv2 in "${elmv1[@]}"; do
        for elm in "${elmv2[@]}"; do
            echo "<$elm>"
        done
    done
done
Run Code Online (Sandbox Code Playgroud)

4.3之前

arr01=(0 '1 2')
arr02=(4 '5 6')
arr1=('arr01[@]' 'arr02[@]')
arr=('arr1[@]')

for elmv1 in "${arr[@]}"; do
    for elmv2 in "${!elmv1}"; do
        for elm in "${!elmv2}"; do
            echo "<$elm>"
        done
    done
done
Run Code Online (Sandbox Code Playgroud)