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

作者:czmmiao 原文地址:http://czmmiao.iteye.com/blog/911371

时间: 2024-09-17 04:31:50

Shell学习笔记---数字递增总结的相关文章

linux Shell学习笔记第一天_其它

以下是Shell学习1-2天学习笔记 ---------我是分隔符--------- 硬件去执行, 内核与硬件之间进行操作. 命令解析器. shell脚本的组成元素 系统命令 文本处理工具(sort.grep.sed.awk-) 变量 条件判断 环循结构 函数 Shell Scripts Center(SSC) ---------------------------- 非负Grep / awk 几天. 统计Wc Sort 排序 sort|head / sed字段处理 awk 数据区域判断 awk

shell学习笔记1---awk基础(原创)

awk概述 awk是一种编程语言,用于在linux/unix下对文本和数据进行处理.数据可以来自标准输入.一个或多个文件,或其它命令的输出.它支持用户自定义函数和 动态正则表达式等先进功能,是linux/unix下的一个强大编程工具.它在命令行中使用,但更多是作为脚本来使用.awk的处理文本和数据的方式是这 样的,它逐行扫描文件,从第一行到最后一行,寻找匹配的特定模式的行,并在这些行上进行你想要的操作.如果没有指定处理动作,则把匹配的行显示到标准输出 (屏幕),如果没有指定模式,则所有被操作所指

Shell学习笔记---重定向输入、输出(原创)

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的. 重定向输入.输出示例$cat         #cat把键盘看作标准输入,屏幕看作标准输出.按下CTRL+D结束键盘输入 $cat > sample.txt $cat /dev/null > /var/log/messages $cat  /etc/profile  >   /var/log/messages $cat  /etc/profile  >>  /var/log/messages     #在文件/v

shell学习笔记3---awk的执行过程(原创)

awk_script的组成1.awk_script可以由一条或多条awk_cmd组成,两条awk_cmd之间一般以NEWLINE分隔2.awk_cmd由两部分组成: awk_pattern { actions }3.awk_script可以被分成多行书写,必须确保整个awk_script被单引号括起来.awk命令的一般形式awk ' BEGIN { actions }awk_pattern1 { actions }............awk_patternN { actions }END {

shell学习笔记5---sed详解(原创)

Sed简介sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕.接着处理下一行,这样不断重复,直到文件末尾.文件内容并没有改变,除非你使用重定向存储输出.Sed主要用来自动编辑一个或多个文件:简化对文件的反复操作:编写转换程序等. 可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(

Shell学习笔记---变量赋值与运算(原创)

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的.  #!/bin/bash #Filename:prameter_parctise2 #Datetime:2010_12_24 09:24 #Discription:Practise of evaluating parameters # 等号赋值a=879echo "The value of \"a\" is $a."  # 使用'let'赋值let a=16+5 echo "The value

Shell学习笔记---变量的赋值与替换

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的.  建议读者先将以下命令分别执行后再整合成脚本,这样会对变量的整个赋值过程理解更透彻.  #!/bin/bash #Filename:prameter_practise1 #Datetime:2010_12_24 08:25 #Discription:Practise of using prameters a=375 hello=$a  #------------------------------------------------

Shell学习笔记---date_pratice.sh

声明:本文仅作学习研究使用,多数语句都是为了介绍语法而构造的. 一个简单的date用法练习脚本!!!!!!  #!/bin/bash  #Filename:date_practice.sh  # Datetime:2010_12_23 18:32  #Discription:Practise of using command date  echo "The number of day since the year's begining is `date +%j`."  echo &qu

linux Shell学习笔记第三天_其它

第三天:条件选择 大 纲     应用实例分析     条件测试     if-else-fi     case-in-esac 实现功能菜单: 执行脚本后 按1,显示当前时间 按2,显示CPU负载 按3,显示剩余内存 按0,退出脚本 按其他字符,提示超出选择范围后退出 分析步骤.     #date +%T     uptime awk截取     free –m 条件测试格式     #test –option obj     #[ -option obj ] 返回结果 表达式内容测试结果是