数组名中有变量
大神们,你们好bash中支持:
a=(zero one two three)
arrayname=a
${!arrayname}
我想知道,如何通过arrayname获得数组的长度。
在线等,谢谢大神。
另外我的目的是遍历多个数据所以我把数组的名称定义为
Array_1
Array_2
Array_3
想通过Array_$i去引用他们。
不知道是否有更好的解决方案。
大神,你好
学生有所发现:
eval "item=$\{$arrayname\}"
eval url=$item
echo $url
以上上三句可以将arrayname所引用的数组中的元素1的内容取出来,但是不知道是否可以简化成一句话???
希望大神出手相救!!!!!!! #!/bin/bash
# chapter 1
arrayname=(zero one two three)
for n in ${!arrayname[@]}; do
echo $n ${arrayname}
done
# chapter 2
array_1=(zero one two)
array_2=(three four five)
for (( i=1; i<=2; i++ )) ; do
echo "in array_$i"
for n in $(eval echo \${array_$i[@]}) ; do
echo $n
done
done
#!/bin/bash
# chapter 1
arrayname=(zero one two three)
for n in ${!arrayname[@]}; do
echo $n ${arrayname}
done
# chapter 2
array_1=(zero one two)
array_2=(three four five)
for (( i=1; i<=2; i++ )) ; do
echo "in array_$i"
for n in $(eval echo \${array_$i[@]}) ; do
echo $n
done
done
reyleon 发表于 2015-07-03 10:08 static/image/common/back.gif
果真是大神,膜拜!
页:
[1]