当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 15:43 
头像

注册: 2007-08-24 13:32
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
请看这个代码:
代码:
#!/bin/bash
# generate a index
index=0
last |\
while read TMPLINE;do
     echo -n $index
     echo -n ","
     index=$(($index+1)) # index明明在增加的!
done
echo
echo -n "index="
echo $index # 为什么这里的index还是等于0?


这是输出结果
引用:
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,3
6,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,
53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69
,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,8
6,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,1
02,103,104,105,106,107,108,109,110,111,112,113,114
,115,116,117,118,119,120,121,122,123,124,125,126,1
27,128,129,130,131,132,133,134,135,136,137,138,139
,140,141,142,143,144,145,146,147,148,149,150,151,1
52,153,154,155,156,157,158,159,160,161,162,163,164
,165,166,167,168,169,170,171,172,173,174,175,176,1
77,178,179,180,181,182,183,184,185,186,187,188,189
,190,191,192,193,194,195,196,197,198,199,200,201,
index=0


※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
我在想是不是管道的问题哦? :em23
代码:
#!/bin/bash
i=0
while [ $i -lt 10 ];do
        i=$(($i+1))
        echo -n $i
        echo -n ","
done
echo
echo "i is: $i"

这个脚本的输出是符合期望值的:
引用:
1,2,3,4,5,6,7,8,9,10,
i is: 10


最后由 fearmind 编辑于 2008-12-25 16:15,总共编辑了 2 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 15:53 
头像

注册: 2007-11-19 21:51
帖子: 6956
地址: 成都
送出感谢: 0 次
接收感谢: 4
确实很怪呢 :em06


页首
 用户资料  
 
3 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 15:54 
头像

注册: 2007-08-24 13:32
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
while循环结束后是不是要对里面的使用的变量复原阿?疑惑中…… :em20


页首
 用户资料  
 
4 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 16:52 
头像

注册: 2007-08-05 17:40
帖子: 4968
送出感谢: 0 次
接收感谢: 4
代码:
last |\
while read TMPLINE;do
     echo -n $index
     echo -n ","
     index=$(($index+1)) # index明明在增加的!
done


这个while在一个pipeline中,明明生成来一个子shell。


_________________
free VPN
YouKuDownLoader
代码:
pip3 install ykdl

install YouKuDownLoader, have fun in downloading.
YouKuDownLoader所支持网站列表


页首
 用户资料  
 
5 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 18:42 
头像

注册: 2007-07-05 2:48
帖子: 171
送出感谢: 0 次
接收感谢: 0 次
正如ls所说,是子shell的问题


页首
 用户资料  
 
6 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-25 20:57 
头像

注册: 2007-12-25 12:51
帖子: 231
送出感谢: 0 次
接收感谢: 0 次
子 shell 的问题,用进程替换吧:
代码:
while read X; do
   :...
done < <(last)


页首
 用户资料  
 
7 楼 
 文章标题 : Re: §关于while循环§ 小弟有一个疑问?
帖子发表于 : 2008-12-26 14:56 
头像

注册: 2007-08-24 13:32
帖子: 212
送出感谢: 0 次
接收感谢: 0 次
cnkilior 写道:
代码:
last |\
while read TMPLINE;do
     echo -n $index
     echo -n ","
     index=$(($index+1)) # index明明在增加的!
done


这个while在一个pipeline中,明明生成来一个子shell。


原来是这样阿~ :em11


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Google [Bot] 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译