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)
上一篇 2017-08-26 21:47
下一篇 2017-08-28 10:07

相关推荐

  • 在Centos7上源码编译httpd

    在Centos7上源码编译httpd 安装源码包 首先在http://httpd.apache.org下载所需要的安装包 小编在这里下载的是httpd-2.4.27.tar apr-1.6.2.tar apr-util-1.6.0.tar 首先编译安装apr-1.6.2.tar.gz #1 tar -zxf apr-1.6.2.tar.gz #先解压安装包 …

    2017-08-21
  • linux下NTP服务

    linnux NTP

    2017-10-18
  • bash脚本进阶

     shell脚本流程控制     1.if语句 单分支: if 判断条件;  then   双分支: if 判断条件; then     条件为真的分支代码 else     条…

    Linux干货 2016-08-21
  • 马哥教育网络班22期+第5周课程练习

    week5: 1、显示当前系统上root、fedora或user1用户的默认shell; [root@rs1 ~]# awk -F':' '$1 ~ /^(root|fedora|user1)/{print $1,$NF}' /etc/pa…

    Linux干货 2016-09-08
  • HAproxy reload config file with uninterrupt session

    HAProxy is a high performance load balancer. It is very light-weight, and free, making it a great option if you are in the market for a load balancer and need to keep your cos…

    Linux干货 2015-04-03
  • dd命令详解

    dd命令: convert and copy a file用法:  dd if=/PATH/FROM/SRC of=/PATH/TO/DEST   bs=#: block size, 复制单元大小   count=#:复制多少个bs   of=fil…

    Linux干货 2017-03-19