关于SHELL FOR循环 z

17 篇文章 0 订阅

比如生成1~100的数
然后可以让for来使用

比如
for 1 in `cmd 1 100`

想问一下那个命令是什么 我记得有几种方法

seq



CODE:
[Copy to clipboard]
index=1
while [ $index -le 100 ]
do

。。。
index=$(($index +1))
done




CODE:
[Copy to clipboard]
#!/bin/bash
while :;do
    ((++index))
    echo $index
    ((index==100))&&break
done



bash 3
for i in {1..100}
  do
   .......
  done



QUOTE:
bash 3
for i in {1..100}
  do
   .......
  done
可惜ksh不支持

seq 1 100



QUOTE:
原帖由 hongyunqi 于 2007-6-10 15:52 发表


可惜ksh不支持
min=1
max=100
while [ $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 20
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

real    0m0.003s
user    0m0.000s
sys     0m0.000s
[victor@localhost ~]$ time printf '%d/n' {1..20}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

real    0m0.001s
user    0m0.000s
sys     0m0.000s
[victor@localhost ~]$

谢谢 twf_cc 释疑,已经明白了。

不必客氣 , 大家交流一下 :), 我剛用 ruby 再試一下,更慢..., 還是用bash 快,哈
[victor@localhost ~]$ cat count.rb
for i in 1..20
   p i
end
[victor@localhost ~]$ time ruby count.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

real    0m0.017s
user    0m0.008s
sys     0m0.000s


<script type="text/javascript"> </script> <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值