【问题标题】:Inserting elements into array in ksh将元素插入ksh中的数组
【发布时间】:2014-12-10 20:27:49
【问题描述】:

我试图在读取文件后将动态元素插入到任何数组。我正在使用 ksh,但出现错误。

cat /user/may/onlySysVols

DATA4
DATA5
OSS90
SYSTEM
AUDIT
DATA1
DATA2
DATA3

猫 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

Desired O/P(打印数组)

DATA1 DATA2 DATA3 DATA4 DATA5

【问题讨论】:

    标签: arrays scripting ksh


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以让它变得更简单

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

      【讨论】:

        猜你喜欢
        • 2020-09-07
        • 2013-05-25
        • 2017-11-06
        • 2011-12-24
        • 1970-01-01
        • 1970-01-01
        • 2013-10-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多