我试图在从文件读取后将动态元素插入到任何数组中。我正在使用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
答案 0 :(得分:0)
我明白了:它在第5行 它应该是 eval sysVolArray [$ i] =" \ $ lin" (没有$ {sysVolArray})
答案 1 :(得分:0)
你可以让这更简单
sysVolArray=( $(grep -Ev "OSS|SYSTEM|AUDIT|VD|LAKE|$escvol" /usr/may/onlySysVols) )