设为首页 加入收藏

TOP

Linux下while循环中数组赋值的方法
2014-11-24 00:39:12 来源: 作者: 【 】 浏览:5
Tags: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


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java基础:Java初学者必须了解的.. 下一篇C++异步编程方式

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: