Arrays element1:在具有数组的shell unix中找不到

Arrays element1:在具有数组的shell unix中找不到,arrays,unix,ksh,Arrays,Unix,Ksh,我遇到了一个问题,当我在unix中创建一个数组并将其置于一个while条件下时,它不会产生结果。。错误是:element1:未找到。守则: listArr="" listArr=$listArr"element1\n" listArr=$listArr"element2\n" listArr=$listArr"element3\n" listArr=$listArr"element4\n" listArr=$listArr"element5\n" listArr=$listStr"element

我遇到了一个问题,当我在unix中创建一个数组并将其置于一个while条件下时,它不会产生结果。。错误是:
element1:未找到
。守则:

listArr=""
listArr=$listArr"element1\n"
listArr=$listArr"element2\n"
listArr=$listArr"element3\n"
listArr=$listArr"element4\n"
listArr=$listArr"element5\n"
listArr=$listStr"element6"   
arryIdx=0
OLD_IFS=$IFS
IFS=";"
set -A array $(echo $listArr| tr "\n" ";")
IFS=$OLD_IFS    
echo "$listArr"
echo "Elements: " ${#array[*]}
while [ $arryIdx -lt ${#array[*]} ]; 
do  
    ${array[$arryIdx]}
    (( arryIdx= $arryIdx+ 1 ))
done

有人能帮我吗?

错误来自行
${array[$arryIdx]}
-显然没有命令
element1
等。也许你忘了它前面有一个
echo

$arryIdx lt
中缺少一个空格。哦,来吧-1代表缺少空格?无论如何,即使使用空格也会出现同样的错误。
$listStr
必须是
$listArr
。如果没有粘贴真正的代码,你至少应该得到-1。设置数组似乎是一种奇怪的方式-为什么不干脆
设置一个数组元素1元素2元素3…
“用换行符创建一个变量,将换行符转换为分号,然后用IFS使
set
将其解释为数组”之类的东西…?谢谢!大约两天了,我找不到这个愚蠢的错误。Thanksksh-x yourScript在这种情况下会很有帮助。