shell腳本編程基礎

    在liuux中,當你想要做什麼事情的時候,可以通過輸入命令傳遞給計算機,但也會有很多時候,我們需要計算機/服務器完成相同的任務,如果我們再一次一次輸入命令執行的話,就會非常的不方便,要想讓所有的事情變得簡單並且自動化,我們就可以藉助shell腳本來實現,也就是說腳本語言是我們與計算機交流的一種便捷途徑。

##腳本基礎

1)內容:包含一些命令或聲明,並符合一定格式的文本文件。

2)格式要求:首行shebang機制

    #!/bin/bash

    #!/usr/bin/python

    #!/usr/bin/per1

3)腳本的用途:

    *自動化常用的命令

    *執行系統管理和故障排除

    *創建簡單的應用程序

    *處理文本或文件

4)創建腳本過程

    *使用文本編輯器來創建文本文件 

      -可以添加註釋,註釋以#開頭

    *運行腳本

      -給予執行權限,在命令上指定腳本的絕對或相對路徑

     -直接運行解釋器,將腳本作爲解釋器程序的參數運行

##語句控制 (腳本過程編輯語言有三種過程)

1)順序執行

    *不需要特定的控制,只需要按照語句依次執行即可

2)選擇執行

    *需要特定的控制語句(如 if,case等)來判斷執行

      -選擇執行還可以包括單分子、雙分支、多分支結構,示例如下

1、

blob.png

2、

blob.png

腳本自上而下逐條件的判斷,第一次判斷到“假”條件時,執行分支判斷,直至結束。

3)循環執行 

    * 將某代碼段重複運行多次,重複循環的次數可以事先已知,也可以事先未知,設定進入和退出循環的條件。(包括for,while,until)

      -for 循環     

1、格式:

for 變量名 in 列表;do

    循環體

done

2、執行機制:

依次將列表中的元素賦值給“變量名”,每次賦值後執行一次循環,直到列表中的元素耗盡,循環結束。

3、列表生成方式:

(1)直接給出列表(2)整數列表(3)返回列表的命令(4)使用glob,如:*.sh(5)變量引用

4、特殊格式:

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

do

    循環體

done

5、示例:

blob.png

特殊格式示例

blob.png

      -while 循環

1、格式

while CONDITION;do

    循環體

done

2、CONDITION:循環控制條件;進行循環之前,先做一次判斷,每一次循環之後再次做判斷,條件爲“True”,則執行一次循環,直到條件測試狀態爲“false”時結束循環。

3、示例:

blob.png

      -until 循環

1、格式:

until CONDITION;do

    循環體

done

2、CONDITION:循環控制條件;進行循環之前,先做一次判斷,每一次循環之後再次做判斷,爲“false”,則執行一次循環,直到條件測試狀態爲“true”時結束循環。

3、示例:

blob.png

      -select 循環

1、格式

select variable in list

    do

        循環體

done

2、select 循環主要是用於創建菜單,按數字順序排列的菜單項將顯示標準錯誤上,並顯示PS3提示符,等待用戶輸入。用戶輸入菜單列表中的莫個數字,執行相應的命令(用戶輸入被保存在內置變量REPLY中)

3、select 是個無限循環,因此要記住用break 命令退出循環,或者用exit命令結束循環,select 經常與 case 聯合使用。

4、示例:

blob.png

    *控制語句:

      -continue [N]:提前結束第N層的本輪循環,而直接進入下一輪的判斷,最內層爲第一層。

      -break [N]:提前結束第N層循環,最內層爲第一層。

      -shift [N]:用於將參數列表list左移指定次數,缺省爲左移一次。

##函數

函數function 是由若干條shell命令組成的語句塊,實現代碼重用和模塊化編輯,它不是一個單獨的進程,不能獨立運行,而是shell程序的一部分。

1)語法 (有兩部分組成,函數名和函數體),三種語法

     *function f_name {

                ...函數體...

       }

     *function f_name () {

                ...函數體...

       }

     *f_name () {

            ...函數體...

       }

2)函數的執行結果返回值:

     *使用echo等命令進行輸出

     *函數體中調用命令的輸出結果

3)函數的退出狀態碼:

     *默認取決於函數執行的最後一條命令的退出狀態碼

     *自定義退出狀態碼,格式爲:

      -return 從函數中返回,用最後狀態命令決定返回值

      -return 0 無錯誤返回。

      -returu 1-255 有錯誤返回


4)使用函數方法:

函數在使用前必須定義,因此應將函數定義放在腳本開始部分,直至shell首次發現它後才能使用,調用函數僅使用函數名即可。

5)示例

blob.png






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章