在ksh中将元素插入到数组中

时间:2014-10-15 16:59:35

标签: arrays scripting ksh

我试图在从文件读取后将动态元素插入到任何数组中。我正在使用ksh&我收到了错误。

cat / user / may / onlySysVols

DATA4
DATA5
OSS90
SYSTEM
AUDIT
DATA1
DATA2
DATA3

cat tst.sh

 1. i=0
 2. grep -Ev "OSS|SYSTEM|AUDIT|VD|LAKE|$escvol" /user/may/onlySysVols |\
 3.   while read lin
 4.   do
 5.     eval ${sysVolArray}'[$i]'="\$lin"
 6.     ((i+=1))
 7.   done
 8.
 9.   echo "${sysVolArray[*]}"

输出:

./tst.sh[5]: [0]=$DATA1:  not found
./tst.sh[5]: [1]=$DATA2:  not found
./tst.sh[5]: [2]=$DATA3:  not found
./tst.sh[5]: [3]=$DATA4:  not found
./tst.sh[5]: [4]=$DATA5:  not found

所需的O / P(打印阵列)

DATA1 DATA2 DATA3 DATA4 DATA5

2 个答案:

答案 0 :(得分:0)

我明白了:它在第5行 它应该是 eval sysVolArray [$ i] =" \ $ lin" (没有$ {sysVolArray})

答案 1 :(得分:0)

你可以让这更简单

sysVolArray=( $(grep -Ev "OSS|SYSTEM|AUDIT|VD|LAKE|$escvol" /usr/may/onlySysVols) )