Shell学习笔记---数字递增总结

在shell用for循环做数字递增的时候发现问题,特列出shell下for循环的几种方法:

* 1.
for i in `seq 1 1000000`;do
echo $i
done


用seq 1 10000000做递增,之前用这种方法的时候没遇到问题,因为之前的i根本就没用到百万(1000000),因为项目需要我这个数字远大于百万,发现用 seq 数值到 1000000时转换为1e+06,根本无法作为数字进行其他运算,或者将$i有效、正确的取用,遂求其他方法解决,如下

* 2.
for((i=1;i<10000000;i++));do
echo $i
done

 

* 3.
i=1
while(($i<10000000));do
echo $i
i=`expr $i + 1`
done


因为本方法调用expr故运行速度会比第1,第2种慢不少不过可稍作改进,将i=`expr $i + 1`改为i=$(($i+1))即可稍作速度的提升,不过具体得看相应shell环境是否支持

* 4.
for i in {1..10000000;do
echo $i
done


其实选用哪种方法具体还是得由相应的shell环境的支持,达到预期的效果,再考虑速度方面的问题。

 

参考至:http://www.shocr.com/linux-shells-for-loop/

如有错误,欢迎指正

邮箱:czmcj@163.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值