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
下一篇 2017-08-28

相关推荐

  • 防火墙原理以及iptables重要实践

    防火墙 主机间通信大致过程: 请求报文由客户端IP+PORT和服务器端IP+PORT构成。当客户端网络地址和服务端地址在同一网段时,不需要经由路由转发,可以直接到目标服务器,再经由服务器端口请求道所需资源; 当服务器端和客户端不在同一网段时。目标IP和源IP是不会改变的,会经由互联网中的路由器,按照其的路由表,指向该路由器的下一跳主机,知道找到服务器端所在网…

    2017-06-18
  • 基于heartbeat v2 crm实现基于nfs的mysql高可用集群

    前言 因heartbeat v1内置的资源管理器haresource功能比较简单,且不支持图形化管理,所以heartbeat v2不再支持haresource,转而使用更加强大的资源管理器crm进行集群管理。本文将讲解如何基于heartbeat v2 crm实现基于nfs的mysql高可用集群。 高可用实现 实验拓扑 实验环境 node1:172.16.10…

    Linux干货 2015-06-11
  • linux下绘图工具rrdtool

    一、前言       为了做云缓存平台的技术储备,从零开始学习了rrdtool,rrdtool非常强大,刚接触会有摸不着边的感觉,尤其是一堆概念性的东西。学习的切入点便是这些概念,一一理解后你才能品尝到rrdtool的清香,首先要感谢ailms整理的“RRDtool简体中文教程 v1.01”,通俗易…

    Linux干货 2015-03-27
  • 访问控制列表ACL使用说明

    一、什么是ACL ACL(Access Control List)可灵活地,更细粒度地定义访问文件或目录的权限。 二、为什么使用ACL Linux上文件系统的文件系统权限管理的对象分为三类:owner,group,other。这种分类非常简单,如果我希望有一个用户拥有不同于这三类对象的权限,或者再定义一个用户组的权限,传统的权限管理就不能实现,而ACL可以很…

    Linux干货 2016-08-08
  • Linux命令1

    7-13 Linux命令   一、进入终端terminal 1..C1trl+Alt 释放鼠标 2.ifconfig 查询ip地址 3.Ping (IP地址) 查看联网状态 4.ls 查看            -l 列出文件 5.tty、who am i  查看当前的登录终端名…

    Linux干货 2017-07-15