数组赋值无效的问题(已解决)

sh/bash/dash/ksh/zsh等Shell脚本
回复
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34
送出感谢: 0
接收感谢: 1 次

数组赋值无效的问题(已解决)

#1

帖子 gzbao9999 » 2010-08-02 13:53

有一个文件bbb

代码: 全选

vava@vava:~/mytest$ more bbb
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251
http://www.xxx.cn/getArticleByAid.action?mid=34&aid=245
http://www.xxx.cn/getArticleByAid.action?mid=71&aid=244
http://www.xxx.cn/getArticleByAid.action?mid=113&aid=232
http://www.xxx.cn/getArticleByAid.action?mid=76&aid=227
http://www.xxx.cn/getArticleByAid.action?mid=53&aid=219
现在写一个脚本slave

代码: 全选

vava@vava:~/mytest$ more slave
#!/bin/bash
array=("1" "2" "3" "4" "5" "6");
echo ${array[0]};
echo ${array[1]};
echo ${array[2]};
echo ${array[3]};
echo ${array[4]};
echo ${array[5]};
echo =====================
j=0;
cat ./bbb|while read i;do array[$j]=$i;echo $j;echo ${array[$j]};echo ${array[0]}=====;j=$[j+1];done
echo =====================
echo ${array[0]};
echo ${array[1]};
echo ${array[2]};
echo ${array[3]};
echo ${array[4]};
echo ${array[5]};
运行后的结果

代码: 全选

vava@vava:~/mytest$ ./slave
1
2
3
4
5
6
=====================
0
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
1
http://www.xxx.cn/getArticleByAid.action?mid=34&aid=245
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
2
http://www.xxx.cn/getArticleByAid.action?mid=71&aid=244
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
3
http://www.xxx.cn/getArticleByAid.action?mid=113&aid=232
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
4
http://www.xxx.cn/getArticleByAid.action?mid=76&aid=227
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
5
http://www.xxx.cn/getArticleByAid.action?mid=53&aid=219
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
=====================
1
2
3
4
5
6
结果出来和我预测的不一样
array[*]里的数值在出来while循环后,又变回了原来的值
why,how to deal
上次由 gzbao9999 在 2010-08-02 15:23,总共编辑 1 次。
气血鼓荡,身体发胀,偶飘上头,三时舒畅
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: 数组赋值无效的问题

#2

帖子 trigger » 2010-08-02 14:00

bash里面while循环接受外部变量似乎要用<重定向
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34
送出感谢: 0
接收感谢: 1 次

Re: 数组赋值无效的问题

#3

帖子 gzbao9999 » 2010-08-02 14:09

trigger 写了:bash里面while循环接受外部变量似乎要用<重定向
不太明白,能给个例子么?
气血鼓荡,身体发胀,偶飘上头,三时舒畅
头像
trigger
帖子: 1585
注册时间: 2006-10-25 18:08
送出感谢: 0
接收感谢: 0

Re: 数组赋值无效的问题

#4

帖子 trigger » 2010-08-02 14:15

代码: 全选

#!/bin/bash
array=("1" "2" "3" "4" "5" "6");
echo ${array[0]};
echo ${array[1]};
echo ${array[2]};
echo ${array[3]};
echo ${array[4]};
echo ${array[5]};
echo =====================
j=0;
while read i
    do array[$j]=$i
        echo $j
        echo ${array[$j]}
        echo ${array[0]}=====
        j=$[j+1]
    done < bbb
echo =====================
echo ${array[0]};
echo ${array[1]};
echo ${array[2]};
echo ${array[3]};
echo ${array[4]};
echo ${array[5]};

代码: 全选

$ ./whilechongdx.sh 
1
2
3
4
5
6
=====================
0
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
1
http://www.xxx.cn/getArticleByAid.action?mid=34&aid=245
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
2
http://www.xxx.cn/getArticleByAid.action?mid=71&aid=244
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
3
http://www.xxx.cn/getArticleByAid.action?mid=113&aid=232
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
4
http://www.xxx.cn/getArticleByAid.action?mid=76&aid=227
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
5
http://www.xxx.cn/getArticleByAid.action?mid=53&aid=219
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
6

http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251=====
=====================
http://www.xxx.cn/getArticleByAid.action?mid=66&aid=251
http://www.xxx.cn/getArticleByAid.action?mid=34&aid=245
http://www.xxx.cn/getArticleByAid.action?mid=71&aid=244
http://www.xxx.cn/getArticleByAid.action?mid=113&aid=232
http://www.xxx.cn/getArticleByAid.action?mid=76&aid=227
http://www.xxx.cn/getArticleByAid.action?mid=53&aid=219
楼主真是一派胡言,真可谓:“两个黄鹂鸣翠柳,不知所云;一行白鹭上青天,不知所止“。本来不想和你辩论,今天气愤不过,和你理论一番。我国宪法写得清清楚楚:“一夜夫妻百日恩,七楼以上才有电梯”。这个想必你知道,既然知道,你就不能断章取义,就算是天气预报,它还有不准的时候呢!!!再者说了,那中国银行也不是你一家开的。人家马拉多纳都结婚了,你还拿着粮票顶什么用呢。真是滑天下之大稽。前些日子,全国人大刚刚开过会,郑重声明:“中国不搞多party制,存栏母猪给补贴”。多好的事呢,楞让你这号人给搅混了。
gzbao9999
帖子: 627
注册时间: 2008-11-08 18:34
送出感谢: 0
接收感谢: 1 次

Re: 数组赋值无效的问题

#5

帖子 gzbao9999 » 2010-08-02 14:54

搞定了 谢谢楼上
气血鼓荡,身体发胀,偶飘上头,三时舒畅
回复

回到 “Shell脚本”