循環的特殊用法及函數

while特殊用法

while read 變量名;do

循環體

done<文件路徑(將文件中的每一行依次讀入循環體,賦值給變量)

 

(())可以實現C語言風格的變量操作

for循環特殊格式

for((控制變量初始化;條件判斷表達式;控制變量修正表達式))

do

循環體

done

控制變量初始化僅在循環開始時執行一次,進行條件判斷成立后執行循環體,再執行控制變量的修正,然后再條件判斷,知道條件不滿足為止。

select用法

select 變量名 in列表

do

      循環體命令

done

select是一個無限循環命令,要用break或exit退出循環或腳本。

select主要用于創建菜單并按照順序輸出,格式由PS3變量定義

select可以根據用戶的選擇執行相應的命令,用戶的輸入被保存再REPLE變量中

select經常與case變量一起使用

select中 in list可以省略,此時則自動讀取位置變量

 

函數:函數是由若干條命令組成的語句塊,有利于代碼的重復利用和模塊化編程

函數與shell程序相似,不同的是函數不是一個單獨的進程,不能獨立運行,而且shell程序是在子shell中進行,而函數則是在當前shell中運行,所以函數運行會改變當前shell中的變量值

函數的格式

      1、 function 函數名{

函數體

}

2、         function 函數名(){

函數體

}

3、         函數名(){

函數體

}

函數的定義和使用:

 可在交互式環境下定義函數 

可將函數放在腳本文件中作為它的一部分 

可放在只包含函數的單獨文件中  ?

函數的調用:函數只有被調用才會執行; 

調用:給定函數名  函數名出現的地方,會被自動替換為函數代碼  ?

函數的生命周期:被調用時創建,返回時終止

函數有兩種返回值,一種是命令的執行結果,另一種是命令執行結果狀態碼

命令的執行結果可以用printf或echo進行輸出,也可以進行調用

函數的退出狀態碼,默認是函數最后一條命令的執行結果,也可以用return進行自定義

函數必須先定義再進行調用

函數定義在一個單獨的文件里可以通過.或source進行調用,但只對當前shell有效,對子shell也無效。

局部變量:在函數體內部定義的局部變量只在當前函數體內部有效,離開函數體自動失效,若腳本中有同名的本地變量或環境變量也優先使用局部變量

局部變量定義方法 locate 變量名=值

函數的遞歸:通過函數直接或間接的調用自身實現

原創文章,作者:zzzzz1357x1,如若轉載,請注明出處:http://www.www58058.com/38542

(0)
zzzzz1357x1zzzzz1357x1
上一篇 2016-08-21 20:45
下一篇 2016-08-21 20:45

相關推薦

  • ?Linux進程管理與性能分析

    Linux進程管理與性能分析 概述 系統維護的一個重要工作就是監控Linux系統的運行狀態是否正常,分析系統資源的使用情況,進而對系統進行優化,提高其性能。在實際環境中,系統穩定性尤為重要,可以說系統的穩定性關系到企業的存亡。因此,第一時間掌握CPU、Memory、IO、Network的等系統資源的狀態則可以在系統出現問題時及時解決,把損失降到最低。&nbs…

    Linux干貨 2016-09-11
  • 由蘋果的低級Bug想到的

    2014年2月22日,在這個“這么二”的日子里,蘋果公司推送了 iOS 7.0.6(版本號11B651)修復了 SSL 連接驗證的一個 bug。官方網頁在這里:http://support.apple.com/kb/HT6147,網頁中如下描述: package com.ifeve.book; &n…

    Linux干貨 2016-08-15
  • 第六周作業

    第六周作業 1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.d/rc.sysinit /tmp vim /tmp/rc.sysinit :進入末行模式 % s/^[[:space:]]/#&…

    Linux干貨 2016-10-09
  • 馬哥教育21期網絡班—第15周課程+練習—-awk 總結

    GNU awk: 文本處理三工具:grep, sed, awkgrep, egrep, fgrep:文本過濾工具;pattern sed: 行編輯器 模式空間、保持空間 awk:報告生成器,格式化文本輸出; AWK: Aho, Weinberger, Kernighan&nbsp…

    Linux干貨 2016-11-14
  • mount命令使用詳解

    一、掛載(mount)初識     1.什么是掛載         將額外文件系統與根文件系統某現存的目錄建立起關聯關系,進而使得此目錄作為其它文件訪問入口的行為。     2.常用的文件系統類型 &…

    Linux干貨 2016-09-01
  • 網絡接口bonding的設置

    網絡接口bonding的設置 一、什么是Bond 就是將多塊網卡綁定同一IP地址對外提供服務,可以實現高可用或者負載均衡。當然,直接給兩塊網卡設置同一IP地址是不可能的。通過bonding,虛擬一塊網卡對外提供連接,物理網卡的被修改為相同的MAC地址。 二、Bonding的工作模式 Bond有七種策略模式(mode),其實指的是在傳輸數據包的時候,如何從已經…

    Linux干貨 2016-09-06

評論列表(1條)

  • 馬哥教育
    馬哥教育 2016-08-21 21:05

    對while、for等循環語句的語法總結的很細致,同時函數部分的用法也很詳細,可以在文章中穿插練習中的腳本,并總結好需要注意的地方,這是經驗,課后練習需要認真對待。

欧美性久久久久