Bash:迭代多个数组会更改数组值

Bash:迭代多个数组会更改数组值

如果我在 bash 中迭代多个数组并打印其值,则数组的值会发生变化。为什么?

#!/bin/bash

a=("02" "20")
b=("02" "20")
n=("02" "20")
p=("02" "20")

for p in ${p[@]}
do
    for b in ${b[@]} 
    do
        for a in ${a[@]} 
        do 
           for n in ${n[@]} 
           do
             echo $b-$a-$n-$p
           done;
        done;
    done;
done
echo "${a[*]}"

该命令echo "${a[*]}"产生20 20但应该是02 20

谢谢!

答案1

这行:

    for a in ${a[@]} 

正在重新分配 的值a(在本例中意味着重新分配 的第零个索引a)。

相关内容