Linux--shell編程原理--03


一、編程原理:

1、編程介紹:

  計算機只能識別二進制指令

   程序=指令+數據

  根據服務的重心不同,我們分為面向過程編程,面向對象編程;

    a) 面向過程:側重於指令的編程語言

    b) 面向對象:側重於數據的編程語言

2、編程語言的分類:

  高級語言、超高級語言需要翻譯成計算機可讀的語言(二級制指令)

         a) 解釋型:逐行翻譯,逐行執行(解釋一行、執行一行)shell、python

         b) 編譯型:一次編譯,全部執行  C、C++、C#

3、編程語言的執行方式:

  a) 順序執行 : 一行一行的執行

  b) 循環執行 : for、while、until

  c) 選擇執行(分支): if、case

二、shell腳本語言介紹:

1、優點:

  調用os(操作系統)的命令行,來實現所有功能;

2、缺點:

  沒有庫調用(區分python)

3、shell腳本包括

       a) 命令**很重要**

       b) 變量(全局變量、局部變量、本地變量、傳參)

  c) 邏輯關系

4、shell的第一句話: #!/bin/bash  --- 定義腳本解釋器

  /etc/shells – 查看當前系統支持的shell程序

  echo $SHELL – 查看當前會話的shell程序

  /etc/passwd – 制定了用戶默認支持的shell程序(/sbin/nologin)

 5、shell的執行:

  a) bash命令來執行腳本:

    -n 查看shell腳本的邏輯錯誤(注意單詞的錯誤檢查不出來)

    -x 逐行顯示執行的腳本程序(方便排錯)

  b) 授權: chmod u+x filename.sh   使用全路徑執行腳本即可

三、變量:一段被命名的內存空間

1、環境變量---關於命令歷史的變量:PATH是環境變量的一種

  ---環境變量查看:env

  ---查看更詳細的環境變量:set

2、局部變量 declare命令 ---定義變量類型

3、本地變量 local 在函數中使用

4、變量類型:

  a) 數值型:

      整型  int

    浮點型 float

     布爾型 boolean

  b) 字符串:

    普通字符及字符串

    數組

5、編程語言的分類:

  強類型語言: --- 數值必須被定義變量類型,才能進行處理或運算

  弱類型語言: --- 編程語言可以自動識別變量類型

  【*多態*】一種數值具有多個屬性,而最后使用的屬性取決於和他進行運算的數據

6、傳參:

  $? :代表上一條命令的執行狀態 0表示正確  1~255表示錯誤

  $1、$2 … ${10}:執行腳本命令后面傳入腳本的數據,以空格為分隔符

  $#   :統計傳參數量  ${$#}

  $* :表示所有的傳參,以字符串的形式進行輸出

  $@ :表示所有的傳參,將所有的傳參以列表的形式進行輸出

7、定義變量的格式:

  NAME=VALUE

  通過declare定義變量類型

    declare -i a=10 定義變量a為整型,value為10

    declare -a b  定義數組

8、變量命名:

  a) 下划線的方式指定變量名稱

  b) 使用駝峰命名方式

四、test文件測試、條件判斷

  在腳本中,我們需要進行語句分支;就是做判斷;

  判斷就是使用test命令來實現

1、使用格式:

  a) test [option] file

  b) [條件語句]

2、常見的test選項:

  a) 數值比較選項:

    -eq  等於

    -ne  不等於

    -gt  大於

    -ge  大於等於

    -lt  小於

    -le  小於等於

  b) 判斷選項:

    -e  判讀文件是否存在

    -f  判斷是否為普通文件

    -d  判斷是否為目錄文件

    -L  判斷是否為鏈接文件

    -r -w -x   判斷是否具有 讀 寫 執行

  c) 關聯選項:

    -o  或

    -a  與

    !  非

  d) 字符串判斷:

    =   判斷兩邊的字符串是否相等

    !=  不等於

    -n   判斷字符串是否存在,存在為真,不存在為假

    -z    和-n相反 存在為假,不存在為真

五、邏輯運算

       與 &&    兩邊的命令,都為真,結果才是真

       或 ||       兩邊的命令,一邊為真,就是真,同時為假,才是假

       非 !=

  這個邏輯運算符,前后對接的都是單獨存在的命令;

  例子: [ $? -eq 0] && exit 0 || exit 1

六、算術運算

1、let 1+1
    let a=1+1
    echo $a
2、expr 1*1
    expr 1 * 10
3、$[$1+10]
    a=$[2+3]
    echo $a
4、$(($1/$2))
    a=$((3/2))
    echo $a


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM