如果我在 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
)。