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

相关推荐

  • Liunx系统命令的使用格式

    Liunx系统命令的格式 基本格式如下:               ~]# COMMAND OPTIONS ARGUMENTS COMMAND:      发起一个命令,请求内核将某个二进…

    Linux干货 2016-10-28
  • 马哥教育网络班21期+第3周作业

    马哥教育网络班21期+第3周作业 1、列出当前系统上所有已经登陆的用户的用户名 [root@ip-172-31-45-110 ec2-user]# who | awk '{print $1}' ec2-user 2、取出最后登录到当前系统的用户的相关信息 [root@ip-172-3…

    Linux干货 2016-07-22
  • N28-第二周

    1. Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。
    2. bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3. 請使用命令行展開功能來完成以下練習:
    (1) 創建/tmp目錄下的a_c、a_d、b_c、b_d。
    (2) 創建/tmp/mylinux目錄下的bin、boot/grub、dev、etc/rc.d/init.d、etc/sysconfig/network-scripts、lib/modules、
    lib64、proc、sbin、sys、tmp、usr/local/bin、usr/local/sbin、var/lock、var/log、var/run目錄。
    4. 如何查看文件的元數據,其信息有哪些,分別表示什麼含意?如何修改文件的時間戳信息?
    5. 如何定義一個命令的別名?如何在命令中引用另一個命令的執行結果?
    6. 顯示/var目錄下所有以L小寫開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
    7. 顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
    8. 顯示/etc目錄下,以非字母開頭,後面跟了一個字母以及其他任意長度任意字符的文件或目錄。
    9. 在/tmp目錄下創建以tfile開頭,後跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10. 複製/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
    11. 複製/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
    12. 複製/etc目錄下所有以L小寫或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    Linux干货 2017-12-14
  • 初识Linux-即使是997也不能停止学习

    1.计算机的组成及其功能:    从1946年第一台通用计算机ENIAC诞生至今,几乎所有的计算机系统都是建立在冯诺依曼体系结构上的。那么何为冯诺依曼体系结构? 冯诺依曼体系结构:        控制器:是整个计算机的中枢,负责计算机的整体调度工作,将指令从存储器中取出,并对指令进行解释执行。 &n…

    Linux干货 2016-10-29
  • LVS实际操作与调度方法

    LVS概念、类型、调度方法、命令操作与实际配置 字数2134 阅读4 评论0 喜欢1 LVS (一)LVS概念 LVS( Linux Virtual Server)是一种负载均衡(LB,Laod Balance)技术,采用IP负载均衡技术和基于内容请求分发技术。具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行。LVS是一套…

    Linux干货 2016-10-30
  • LVS –负载均衡基础

    一 负载均衡的五种解决方案 1 http重定向 HTTP重定向就是应用层的请求转发。用户的请求其实已经到了http重定向负载均衡服务器,服务器根据算法要求用户重定向,用户收到重定向请求后,再次请求真正的集群。 优点:简单 缺点:性能较差 2 DNS域名解析负载均衡 DNS域名解析负载均衡就是在用户请求DNS服务器,获取域名对应的IP地址时,DNS根据服务器直…

    Linux干货 2017-06-22