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.www58058.com/85506

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

相關推薦

  • 十二.Linux博客-2016年8月16日文件查找和壓縮、rpm包管理、while循環、until循環

    格式說明: 操作 概念 命令 說明及舉例 十二.文件查找和壓縮、rpm包管理、yum、while循環、until循環 tar tar -zcvf /testdir/etc.tar.gz /etc/ 備份etc創建etc.tar.gz文件 壓縮為gz格式 顯示過程 tar -jcvf&nbs…

    Linux干貨 2016-08-24
  • php 配置

      php php不能單獨使用都是與httpd結合使用 結合的方式主要是兩種一種為模塊方式服務于httpd,一種為單獨服務方式服務httpd 兩種方式不能共存 安裝軟件包也不相同 網上有官方中文手冊 http://php.net/download-docs.php php對中文的支持需要安裝php-mbstring php對mysql的支持需要安裝…

    Linux干貨 2016-11-01
  • iptables-防火,防盜,防老王

        防火墻,其實說白了將,就是用于實現linux下訪問控制的功能的,它分為兩種方式,硬件防火墻和軟件防火墻。不過無論是在哪個網絡中,防火墻工作的地方一定是在網絡的邊緣。而我們的任務就是需要去定義防火墻如何工作的,這就是防火墻的策略,規則,以達到讓它對出入網絡的IP,數據進行檢測。     目前市…

    Linux干貨 2017-05-02
  • 深入理解java異常處理機制

     1. 引子        try…catch…finally恐怕是大家再熟悉不過的語句了,而且感覺用起來也是很簡單,邏輯上似乎也是很容易理解。不過,我親自體驗的“教訓”告訴我,這個東西可不是想象中的那么簡單、聽話。不信?那你看看下面的代碼,“猜猜”它執行后的結果會是什么?不要往后看答案、也不許執行代碼看真正…

    Linux干貨 2015-04-12
  • shell腳本一鍵安裝二進制Apache

    安裝背景:用的一臺最小化安裝的centos6。 編譯安裝安裝的必備安裝gcc,gcc-c++ 安裝包arp,arp-util以及pcre的壓縮包已經傳到七牛,沒有通過官網下載。太慢。 apache是通過官網下載的,所以下載比較慢,需要的話更改下地址 不足,只按照正常流程寫,未做任何異常判斷處理 #/bin/bash #一鍵安裝Apache #安裝GCC ec…

    Linux干貨 2016-07-10
  • nginx 配置參數說明和實驗

    nginx.org 實驗版本: 1.10.2 相關命令: # nginx -t //檢查配置文件格式 #nginx -s reload //重新載入配置文件 實驗: 主配文件大概組成 主配置文件的設定 /etc/nginx/nginx.conf events{..} //事件驅動相關 http{..} //網站服務相關 全局配置段解讀與實驗: user ng…

    2017-05-12
欧美性久久久久