我在脚本中有以下代码,它应该可以工作但在内部循环存在时不提供数组元素。变量IPLISTING的范围是全局的。
declare -a IPLISTING
foo(){
CONT=0
allIPs=$(ifconfig | grep "inet addr" | awk '{print $2}' | cut -d ":" -f2)
i=0
while [[ CONT -eq 0 ]] ; do #loop so that it doesn't exit until a valid selection is made
echo "The following networks were found. Please select one to scan:"; echo
echo "$allIPs" | while read singleIP ; do
((i++))
IPLISTING[$i]=$(echo $singleIP| cut -d "." -f1-3|sed -e 's/$/.0/')
echo $i ":" $(echo ${IPLISTING[$i]}) #This works
done
echo ${IPLISTING[1]} #This does not work. When I echo this it gives me nothing
....
stuff
....
CONT=1
done
}
这是一个选择菜单,这样我就可以简单地将数据拉出数组,但是当我退出时,数组完全是空的。我在一个不同的测试中用一个简单的循环尝试了这个并且它有效。另外,我已经验证了所有命令。我似乎无法确定问题所在。任何帮助表示赞赏。感谢。