【发布时间】:2013-07-26 20:56:56
【问题描述】:
我已经定义了多个数组:
array1=(el1 el2 el3 el4 el5)
array2=(el10 el12 el14)
array3=(el5 el4 el11 el8)
我需要遍历所有数组的所有元素。以下是我使用的语法:
for j in {1..3}
do
for (( k = 0 ; k < ${#array$j[*]} ; k++ ))
do
#perform actions on array elements, refer to array elements as "${array$j[$k]}"
done
done
但是,上面的 sn-p 失败并显示消息
k < ${#array$j[*]} : bad substitution and
${array$j[$k]}: bad substitution
我的数组语法有什么问题?
【问题讨论】:
-
你真的需要
$j和$k,还是直接写for value in "${array1[@]}" "${array2[@]}" "${array3[@]}" ; do ... ; done? -
不幸的是,我知道。数组的实际数量是 11,每个数组中元素的操作需要不同。
-
你的数组赋值语法错误,不应该有逗号。
-
道歉 - 这只是我写问题时的一个错字。我的脚本中的数组规范没有任何逗号。