【发布时间】:2013-06-25 12:42:02
【问题描述】:
我遇到了一个问题,当我在 unix 中创建一个数组并将其置于一段时间条件下时,它不会产生结果.. 错误是:element1: not found。代码:
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
谁能帮帮我?
【问题讨论】:
-
$arryIdx-lt中缺少一个空格。 -
哦,来吧 -1 缺少空间?无论如何,即使有空格也会出现同样的错误。
-
$listStr必须是$listArr。 -
不粘贴真实代码至少应该得到-1。
-
似乎是一种奇怪的方式来设置一个数组 - 为什么不只是
set -A array element1 element2 element3 ...而不是整个“创建一个带有换行符分隔符的变量,将换行符转换为分号,然后使用 IFS 来制作set将其解释为“数组”的东西...?