shell腳本----編程原理

 1、編程介紹:python

      計算機只能識別二進制指令。程序員

      程序=指令+數據shell

      早期編程:編程

              驅動:數組

硬件默認是不能使用的;bash

                  CPU控制硬件。編程語言

                  做用:提供不一樣的廠家硬件設備之間須要進行指令溝通,咱們須要驅動程序來進行「翻譯」;函數

             低級語言:「彙編語言」學習

             更趨近於硬件開發的工程師要學習「彙編語言」;而「彙編語言」被廠家所限制;測試

             C語言,C++的底層就是彙編語言;

             操做系統用來分配硬件資源

      如今編程:基於高級語言,以及超高級語言,更好的讓程序員可以實現編程功能。

      編程的分類:

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

             解釋型語言 ---- 逐行翻譯,逐行執行   shell,Python,Java

                       bash –x filename.sh

             編譯型語言 --- 一次編譯,所有執行   大可能是C語言,C++,C#,Java

                    Java既是解釋型也是編譯型

             程序 = 指令 + 數據

             面向對象 --- 側重於數據的編程語言   Java裏一切皆對象

             面向過程 --- 側重於指令

      編程語言的執行方式:

             要求:以行方式【一行一行】

一、 順序執行

二、 循環執行

經常使用for(遍歷),while(循環條件),until(和while相反)

三、 選擇執行 -- 分支

if,重點case

2、shell腳本語言介紹

       一、邏輯關係

       二、變量

       三、判斷

   優勢:調用os(操做系統)的命令行,來實現全部功能;

   缺點:沒有庫調用(區分)Python

   shell腳本包括:

一、 命令(很是重要)

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

   shell的第一句話(必須寫)

        #!/bin/bash -- 定義腳本解釋器(廣泛認爲#爲註釋行,這裏特殊)shebang

        #!/usr/bin/python – Python解釋器

       

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

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

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

      

       shell 的執行:

           一、bash命令來執行腳本

                   -n 查看shell腳本的邏輯錯誤(注意:單詞寫錯無論)

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

                   

                    

                    

二、受權chmod  u+x filename.sh

             使用全路徑執行腳本,便可

3、變量

環境變量

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

本地變量 local 在函數中使用

 

變量類型:

      數值型:

一、 整形 int

二、 浮點型 float

三、 布爾值 0 1(假 真)(True False)

      字符串:

一、 普通字符及字符串

二、 數組

           編程語言的分類:

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

                  弱類型語言 – 編程語言能夠自動識別變量類型

                  【多態】

一個數據有多個屬性,而最後使用的屬性取決於和它進行運算的數據。

         

傳參

              $?  --  上一條命令的執行狀態0正確 1-255錯誤

              $1  --  $2…${10}  --  命令後面傳入腳本的數據,以空格爲分隔符

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

              $*  --  表示全部的傳參,全部的傳參以字符串形式進行輸出

              $@  --  表示全部的傳參,將全部的傳參以列表形式進行輸出

              【工做中要對全部的參數進行操做的時候,就要考慮$*和$@】

                

                 

         

定義變量格式:

              NAME=YALUE  (一個等號叫賦值,兩個等號叫判斷,至關於-eq)

              咱們經過命令declare定義變量類型

              declare -i 整數 int()  str()

              declare -a 數組

        變量命令:

一、 下劃線的方式指定變量名稱

二、 駝峯命名方式

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

        test命令[裏面必須有空格]

在腳本中,咱們須要進行語句分支 就是作判斷

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

使用格式:

一、test[option] file

二、[條件語句]

常見的test選項:

                  比較選項:

                      -eq 等於  數值用這個判斷等於不等於

                      -ne 不等於

                      -gt 大於

                      -ge 大於等於

                      -lt 小於

                      -le 小於等於

                 判斷選項:

                      -e 判斷文件是否存在

-f 判斷是否爲普通文件

                      -d 判斷是否爲目錄文件

                      -L 判斷是否爲連接文件

                      -r -w –x 判斷文件是否具備 讀 寫 執行的權限

                 關聯選項:

                      -o 或

                      -a 與

                      ! 非

                字符串判斷:

                      = 等於爲真  字符串用這個判斷是否相等

                            

                       != 不等於

                     -z 判斷字符串長度是否爲0   0就是假(判斷是否存在)

                     -n 和-z相反 存在爲假 不存在爲真

5、邏輯運算

       與   &&  與運算 兩邊都真纔是真,一邊爲假也是假

       或   ||   或運算 一邊爲真就是真,兩邊都假纔是假

       非   !    非運算 真換假,假換真

       示例:ls /var && exit0 || exit 1

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

       [ $? –eq 0 ]&& exit 0 || exit 1

6、算術運算

重點:let   1+1

       expr  1*1

       重點:$[]  $[1+10]

       $(())   $(($1/$2))

       算數運算符:

相關文章
相關標籤/搜索