免费注册 查看新帖 |

Chinaunix

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

这个循环体,估计会有许多人答错, [复制链接]

论坛徽章:
1
双子座
日期:2013-08-19 14:56:16
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-29 10:12 |只看该作者 |倒序浏览
不要实测,猜猜这个循环会执行多少次
#!/bin/bash   -e

i=0
while [ $i -lt 20 ] ; do
    echo $i
    let i++
done


[ 本帖最后由 猪知猪之道 于 2009-7-29 10:47 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-07-29 10:15 |只看该作者

回复 #1 猪知猪之道 的帖子

20

不过你写错了

论坛徽章:
1
双子座
日期:2013-08-19 14:56:16
3 [报告]
发表于 2009-07-29 10:16 |只看该作者
原帖由 wtuter 于 2009-7-29 10:15 发表
20

不过你写错了


少个空格,这是粘贴的问题 。

论坛徽章:
0
4 [报告]
发表于 2009-07-29 10:29 |只看该作者
20吧?不是吗

论坛徽章:
0
5 [报告]
发表于 2009-07-29 14:35 |只看该作者
楼主用的-e选项那势必不会循环到20次,不过不知道个操作有非0的返回?
难道是let? 可能是1次吧,呵呵

论坛徽章:
0
6 [报告]
发表于 2009-07-29 14:38 |只看该作者

  1. bash -x 1.sh
  2. + i=0
  3. + '[' 0 -lt 20 ']'
  4. + echo 0
  5. 0
  6. + let i++
  7. + '[' 1 -lt 20 ']'
  8. + echo 1
  9. 1
  10. + let i++
  11. + '[' 2 -lt 20 ']'
  12. + echo 2
  13. 2
  14. + let i++
  15. + '[' 3 -lt 20 ']'
  16. + echo 3
  17. 3
  18. + let i++
  19. + '[' 4 -lt 20 ']'
  20. + echo 4
  21. 4
  22. + let i++
  23. + '[' 5 -lt 20 ']'
  24. + echo 5
  25. 5
  26. + let i++
  27. + '[' 6 -lt 20 ']'
  28. + echo 6
  29. 6
  30. + let i++
  31. + '[' 7 -lt 20 ']'
  32. + echo 7
  33. 7
  34. + let i++
  35. + '[' 8 -lt 20 ']'
  36. + echo 8
  37. 8
  38. + let i++
  39. + '[' 9 -lt 20 ']'
  40. + echo 9
  41. 9
  42. + let i++
  43. + '[' 10 -lt 20 ']'
  44. + echo 10
  45. 10
  46. + let i++
  47. + '[' 11 -lt 20 ']'
  48. + echo 11
  49. 11
  50. + let i++
  51. + '[' 12 -lt 20 ']'
  52. + echo 12
  53. 12
  54. + let i++
  55. + '[' 13 -lt 20 ']'
  56. + echo 13
  57. 13
  58. + let i++
  59. + '[' 14 -lt 20 ']'
  60. + echo 14
  61. 14
  62. + let i++
  63. + '[' 15 -lt 20 ']'
  64. + echo 15
  65. 15
  66. + let i++
  67. + '[' 16 -lt 20 ']'
  68. + echo 16
  69. 16
  70. + let i++
  71. + '[' 17 -lt 20 ']'
  72. + echo 17
  73. 17
  74. + let i++
  75. + '[' 18 -lt 20 ']'
  76. + echo 18
  77. 18
  78. + let i++
  79. + '[' 19 -lt 20 ']'
  80. + echo 19
  81. 19
  82. + let i++
  83. + '[' 20 -lt 20 ']'
复制代码

0-19不就是二十次么?

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
7 [报告]
发表于 2009-07-29 14:48 |只看该作者

回复 #6 00306 的帖子

用bash -x 1.sh就把第一行的#!/bin/bash   -e无视了,不知道这个-e选项是干嘛的,man bash都没看到

论坛徽章:
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
8 [报告]
发表于 2009-07-29 14:50 |只看该作者
let i++不行就用let ++i或者let i=i+1等等嘛

i=0时 i++就是先返回0再递增,let看到0就产生退出状态1

论坛徽章:
0
9 [报告]
发表于 2009-07-29 14:58 |只看该作者
原帖由 Minsic 于 2009-7-29 14:48 发表
用bash -x 1.sh就把第一行的#!/bin/bash   -e无视了,不知道这个-e选项是干嘛的,man bash都没看到

查了下 bash -e 表示一出错,马上退出bash。

论坛徽章:
1
丑牛
日期:2014-08-07 17:07:05
10 [报告]
发表于 2009-07-29 15:20 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP