免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2077 | 回复: 5
打印 上一主题 下一主题

请教一个数组变量替换问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-11-29 12:42 |只看该作者 |倒序浏览
大家好,我现在有数组

UNIT=( UNIT1 UNIT2 UNIT3 )
UNIT1=( 0 1 2 3 4)
UNIT2=(1 2 3 4 5)
UNIT3=(2 3 4 5 6)

这里UNIT数组的元素是另外一个数组的数组名,我现在想要通过循环从UNIT数组中读出其他数组的数组名,然后显示出UNIT1----UNIT3的元素,
类似下面这种形式:

for arr in ${UNIT[@]}
do
    for array in ${$arr[@]}            ###我这里写的是有问题的,不知道该怎样写
    do
         echo $array
    done
done

不知道可以怎么实现呢?

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
2 [报告]
发表于 2010-11-29 14:01 |只看该作者
本帖最后由 jason680 于 2010-11-29 14:07 编辑
大家好,我现在有数组

UNIT=( UNIT1 UNIT2 UNIT3 )
UNIT1=( 0 1 2 3 4)
UNIT2=(1 2 3 4 5)
UNIT3=(2  ...
dolinux 发表于 2010-11-29 12:42


1.
  1.     eval temp=\${$arr[@]}
  2.     for array in $temp
  3.     do
  4.          echo $array
  5.     done
复制代码


2.
  1.     eval "
  2.     for array in \${$arr[@]}
  3.     do
  4.          echo \$array
  5.     done
  6.     "
复制代码

论坛徽章:
0
3 [报告]
发表于 2010-11-29 14:54 |只看该作者

  1. for arr in ${UNIT[@]}
  2. do
  3.     for array in $(eval echo "\${$arr[@]}")         
  4.     do
  5.          echo $array
  6.     done
  7. done
复制代码

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
4 [报告]
发表于 2010-11-29 15:35 |只看该作者
zzy7186 发表于 2010-11-29 14:54


谢谢!!又更上一层楼...

论坛徽章:
0
5 [报告]
发表于 2010-11-29 15:39 |只看该作者
多谢楼上两位。。。

论坛徽章:
0
6 [报告]
发表于 2010-11-30 10:55 |只看该作者

  1. for arr in ${UNIT[@]}
  2. do
  3. eval temp='$'{$arr[@]};
  4. echo $temp;
  5. done

复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP