数组里面变量求解

sh/bash/dash/ksh/zsh等Shell脚本
回复
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

数组里面变量求解

#1

帖子 kbens85 » 2012-05-31 14:15

如ab=(
123
345
345)
for ((i=0;i<${#ab[*]};i++));do
echo ${ab}
done

现在想这样,可发现这样写不对(标红的地方),求解决
dd=$1
for ((i=0;i<${#$dd
[*]};i++));do
echo ${$dd}
done
头像
wjchen
帖子: 583
注册时间: 2011-05-02 19:08
系统: ubuntu 12.04

Re: 数组里面变量求解

#2

帖子 wjchen » 2012-05-31 15:57

你命令行中$1怎么打的,./script.sh (123 345 345) 这样吗?你想实现怎样的效果?
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 数组里面变量求解

#3

帖子 kbens85 » 2012-05-31 16:45

wjchen 写了:你命令行中$1怎么打的,./script.sh (123 345 345) 这样吗?你想实现怎样的效果?
我有好多数组 数组名为a b c ...
a=(1 2 3 )
b=(1 2 3 )
c=(1 2 3 )
'''''
dolist () {
cs=$1
len=${#$cs[*]}
for ((i=0;i<$len;i++));do
echo ${$cs}
done
}

dolist a
dolist b
dolst c
。。。
发现变量cs 在${#$cs
[*]} ${$cs} 里面 出现错误
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

Re: 数组里面变量求解

#4

帖子 aerofox » 2012-06-01 6:09

[bash]eval len="\${#$cs[*]}"

eval echo "\${$cs}"[/bash]
pengqian
帖子: 120
注册时间: 2010-12-23 10:23

Re: 数组里面变量求解

#5

帖子 pengqian » 2012-06-01 6:19

我总觉得 bash 不适合写这么复杂的东西。
数组啊什么的,总是各种报错。
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 数组里面变量求解

#6

帖子 kbens85 » 2012-06-01 9:23

aerofox 写了:[bash]eval len="\${#$cs[*]}"

eval echo "\${$cs}"[/bash]



哥,正解啊,膜拜中。。。
kbens85
帖子: 16
注册时间: 2012-03-31 11:52

Re: 数组里面变量求解

#7

帖子 kbens85 » 2012-06-01 9:24

pengqian 写了:我总觉得 bash 不适合写这么复杂的东西。
数组啊什么的,总是各种报错。
是不怎么合适,可是遇到这种情况,不弄出来 心里不舒服。。呵呵。
回复