免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2452 | 回复: 6
打印 上一主题 下一主题

for循环的stdin重定向 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-31 15:35 |只看该作者 |倒序浏览
  1. 10 line_count=`wc $Filename | awk '{ print $1 }'`
  2. 11 #           目标文件的行数.
  3. 12 #
  4. 13 #  此处的代码太过做作, 并且写得很难看,
  5. 14 #+ 但至少展示了"for"循环的stdin可以重定向...
  6. 15 #+ 当然, 你得足够聪明, 才能看得出来.
  7. 16 #
  8. 17 # 更简洁的写法是     line_count=$(wc -l < "$Filename")
复制代码
这个没看明白,10行的这句话,哪里用到for循环了?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
2 [报告]
发表于 2011-12-31 15:42 |只看该作者
need more context

论坛徽章:
0
3 [报告]
发表于 2011-12-31 15:49 |只看该作者
回复 2# waker
  1.   1 #!/bin/bash
  2.   2
  3.   3 if [ -z "$1" ]
  4.   4 then
  5.   5   Filename=names.data          # 如果没有指定文件名就使用默认值.
  6.   6 else
  7.   7   Filename=$1
  8.   8 fi  
  9.   9
  10. 10 line_count=`wc $Filename | awk '{ print $1 }'`
  11. 11 #           目标文件的行数.
  12. 12 #
  13. 13 #  此处的代码太过做作, 并且写得很难看,
  14. 14 #+ 但至少展示了"for"循环的stdin可以重定向...
  15. 15 #+ 当然, 你得足够聪明, 才能看得出来.
  16. 16 #
  17. 17 # 更简洁的写法是     line_count=$(wc -l < "$Filename")
  18. 18
  19. 19
  20. 20 for name in `seq $line_count`  # "seq"打印出数字序列.
  21. 21 # while [ "$name" != Smith ]   --   比"while"循环更复杂   --
  22. 22 do
  23. 23   read name                    # 从$Filename中, 而非从stdin中读取.
  24. 24   echo $name
  25. 25   if [ "$name" = Smith ]       # 因为用for循环, 所以需要这个多余测试.
  26. 26   then
  27. 27     break
  28. 28   fi  
  29. 29 done <"$Filename"              # 重定向stdin到文件$Filename.
  30. 30 #    ^^^^^^^^^^^^
  31. 31
  32. 32 exit 0
复制代码
13行说"此处的代码太过做作",但展示for可以重定向,可是上面的第10行并没有用for啊?难道隐藏什么调用?

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
4 [报告]
发表于 2011-12-31 16:10 |只看该作者
耐心一点儿看第20行嘛,没规定注释一定要在代码右边或下边吧,人写不下写在上面了

论坛徽章:
0
5 [报告]
发表于 2011-12-31 16:14 |只看该作者
waker 发表于 2011-12-31 16:10
耐心一点儿看第20行嘛,没规定注释一定要在代码右边或下边吧,人写不下写在上面了


那解释一下17行的注释为啥还写在下面

论坛徽章:
0
6 [报告]
发表于 2011-12-31 16:16 |只看该作者
回复 4# waker


    额,这个太囧了,最近太浮躁,要踏实下了

论坛徽章:
8
摩羯座
日期:2014-11-26 18:59:452015亚冠之浦和红钻
日期:2015-06-23 19:10:532015亚冠之西悉尼流浪者
日期:2015-08-21 08:40:5815-16赛季CBA联赛之山东
日期:2016-01-31 18:25:0515-16赛季CBA联赛之四川
日期:2016-02-16 16:08:30程序设计版块每日发帖之星
日期:2016-06-29 06:20:002017金鸡报晓
日期:2017-01-10 15:19:5615-16赛季CBA联赛之佛山
日期:2017-02-27 20:41:19
7 [报告]
发表于 2011-12-31 16:19 |只看该作者
回复 5# mpstat


    没人规定非要abc吧? 人喜欢bac不行啊?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP