Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器 软件资源

软件开发小程序制作系统集成与运维空间租用硬件开发视频监控技术咨询与支持——联系电话:0311-88999002/88999003

首页 / 操作系统 / Linux / Linux下while循环中数组赋值的方法

i=0
cat $ALLGROUPFILE_PATH | while read line
do
ALL_GROUP[i]=$line
let i=i+1
done
echo ${#ALLREGION[@]}
最后一句的echo ${#ALLREGION[@]}为什么打印出的数组长度是空呢?怎样才能在Linux下while循环的外面得到这个数组的长度呢?
解决方案: 用重定向而不是管道,举例:-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0]
; cat file
1
2
3
4
5
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0]
; cat file.sh
#!/bin/bash

arr=()
i=0
while read line; do
    arr[i++]=$line
done < file
echo ${#arr[@]}
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0]
; ./file.sh
5
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[31048 0]
; bye