shell编程基础一(多种方法求值1+2+..+100)

#SHELL编程基础一(多种方法求值1+2+..+100)
##为什么要学好shell
 shell脚本语言是实现linux系统管理及自动化运维所必备的重要工具,linux系统的底层及基础应用软件的核心大都涉及shell脚本的内容。
 每一个合格的linux系统管理员或运维工程师,都需要能够熟练地编写shell脚本语言,并能够阅读系统及各类软件附带的shell脚本内容。
 只有这样才能提升运维人员的工作效率,适应日益复杂的工作环境,减少不必要的工作,从而为个人的职场发展奠定较好的基础。
#
 本文的宗旨是熟悉shell编程中的for语句、while语句及until等语句的使用语法和应用方法。
##shell实现
###1、for循环
 #!/bin/sh
 sum=0                          <==定义一个变量sum
 for n in{1..100};do    <==变量名n从1到100中取值
  let sum=$sum+$n         <==let运算
 done
 echo $sum                    <==循环结束
#
 n的取值范围可以用其他方法代替。如:seq 100(命令要加反引号“)
 算法也可以用很多方法:(())、expr。
#
 #!/bin/sh
 j=0
 for ((i=0;i<=100;i++));do   <==第一个是变量初始化,第二个是变量的范围,第三个是变量自增或自减
  ((j=j+i))
 done
 echo $j 
#
###2、while循环
 i=1
 while((i <=100));do          <==当i不符合条件的时候退出循环。
 ((j=j+i))
 ((i++))
 done
 echo $j

#
###3、until循环
 i=1
 until((i >100));do    <==当i符合条件的时候退出循环。与while相反。
 ((j=j+i))
 ((i++))
 done
 echo $j
#
##非shell脚本实现
 之前我们学过一些命令也可以实现1+2+..+100的求和,这里带大家回顾一下
#
 1、echo {1..100}|tr ” ” “+”|bc
 说明:tr 替换 这里实现的是把空格替换成+,然后通过管道传给下一个
  bc:linux中的计算器,支持整数计算
#
 2、seq -s + 1 1 100|bc
 说明 :seq -s 指定分隔符
 1 1 100  
 第一个1是初始值,第二个是步长值,第三个是结束值 

 博主刚开始学shell编程,水平有限。必然还有其他算法,希望各位高手多赐教。学习shell编程重在思路、思维、方法。除了这些还要自己努力、坚持。
 

原创文章,作者:eleven,如若转载,请注明出处:http://www.178linux.com/85506

(1)
eleveneleven
上一篇 2017-08-26 21:47
下一篇 2017-08-28 10:07

相关推荐

  • 进程管理

    简述进程的相关理论与工具使用

    2017-09-09
  • 优云软件:双态运维下,老司机是怎么玩CMDB的?

    行业内有个科技公司,CMDB前后建设12年,重构了N次,一言不合就重构,我深深的被这种屡拆屡战,初心不改精神所折服。我真心想问下做CMDB的兄弟,各位是怎么熬过来的?请不要回避,其实我们都曾被这样虐过! 近几年我司承建国内很多传统行业的CMDB项目,坦白的说,随着互联网+热潮的冲击,因很多传统企业也慢慢的在转变业务,把很多传统型的业务互联网化,或者开辟新型业…

    2016-08-05
  • 系统基础之shell脚本编程详解3(函数)

    shell脚本编程详解3:    在前两节我们分别介绍了shell脚本编程的基础和循环,判断的知识,今天我们分享脚本的另一种用法,函数. 概论:     函数function是由若干条shell命令组成的语句块,实现代码重用和模块化编程。    它与shell…

    Linux干货 2016-08-22
  • 再不自动化就晚啦!优云教你4步打造基于CentOS的产品镜像

    随着Linux程序的增多,软件的安装过程中经常出现如下问题: 1、硬件配置类似或者相同时,批量安装系统和软件,希望实现自动化安装,减少安装时间和人为出错。 2、工程实施人员在不同客户现场进行系统和软件安装(硬件配置不同),由于硬件有差别,不容易实现自动化。 笔者针对以上场景,从提高生产效率,减少误操作的立场,提出如下解决方案,希望能达到抛砖引玉的目的,并能与…

    系统运维 2016-07-16
  • Linux第三周学习博客作业

    对第三周学习的内容进行总结

    Linux干货 2017-12-17
  • shell脚本终结篇——数组

    数组定义: 变量:存储单个元素的内存空间 数组:存储多个元素的连续的内存空间,相当于多个变量的集合 数组名和索引: 索引:编号从0开始,属于数值索引 注意:索引可支持使用自定义的格式,而不仅仅是数值格式,自定义格式的数组即为关联数组,bash4.0版本之后开始支持 bash的数组支持稀疏格式(索引不连续) 声明数组: declare -a ARRAY_NAM…

    Linux干货 2016-08-24