免费注册 查看新帖 |

Chinaunix

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

关于SHELL FOR循环 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-20 15:38 |只看该作者 |倒序浏览
比如生成1~100的数然后可以让for来使用比如for 1 in `cmd 1 100`想问一下那个命令是什么 我记得有几种方法seqCODE:[Copy to clipboard]index=1
while [ $index -le 100 ]
do
。。。
index=$(($index +1))
doneCODE:[Copy to clipboard]#!/bin/bash
while :;do
    ((++index))
    echo $index
    ((index==100))&&break
donebash 3 for i in {1..100}  do   .......  doneQUOTE:bash 3
for i in {1..100}
  do
   .......
  done可惜ksh不支持seq 1 100QUOTE:原帖由 hongyunqi 于 2007-6-10 15:52 发表
可惜ksh不支持 min=1max=100while [ $min -le $max ]    do       echo $min        min=`expr $min + 1` done這個該可在任何shell執行seq 1 100 这个速度好快,比8楼的方法快多了,8楼的方法为什么就那么慢呢?seq 不是每個 Unices 都有的,因為呼叫外部程序 expr , 以迴圈方式一遍 +1 到 100,當然慢了,如果 shell 內部命令,就快多了 :)如 Bash 3 可以printf '%d\n' {1..100} , 比seq 還快...[victor@localhost ~]$ time seq 201234567891011121314151617181920real    0m0.003suser    0m0.000ssys     0m0.000s[victor@localhost ~]$ time printf '%d\n' {1..20}1234567891011121314151617181920real    0m0.001suser    0m0.000ssys     0m0.000s[victor@localhost ~]$谢谢 twf_cc 释疑,已经明白了。不必客氣 , 大家交流一下 :), 我剛用 ruby 再試一下,更慢..., 還是用bash 快,哈[victor@localhost ~]$ cat count.rbfor i in 1..20   p iend[victor@localhost ~]$ time ruby count.rb1234567891011121314151617181920real    0m0.017suser    0m0.008ssys     0m0.000s
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/52215/showart_1432705.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP