bash特性之邏輯運算和shell腳本的編寫

bash特性之多命令執行:

     ~]#  command1  $command2

     ~]#  command1  |  command2  ....  進程之間通信(IPC

   順序執行結構:

     ~]#  command1  command2  ......

   選擇執行結構:

     邏輯運算

        與:邏輯乘法, && ,雙目運算符

           0success(成功) --->true

           1-225failure(失敗) --->false

           True  &&  true  =true

           True  &&  false  =false

           False  &&  true  =false

           False  &&  false  =false

           “與”運算的短路邏輯運算:只要第一個操作爲false,則其邏輯運算的結果一定爲false

           command1  &&  command2

               如果command1能夠成功執行,則command2會被執行

               如果command1執行失敗,則command2不會被執行

        command1  &&  aommand2

         如果command1能夠成功執行,則command2不會被執行

         如果command1執行失敗,則command2纔會被執行

 

        或:邏輯加法, || ,雙目運算符

           True  ||  true  =true(成功)

           True  ||  false  =true

           False  ||  true  =true

           False  ||  false  =false(失敗)

            “或”的短路邏輯運算,只要第一個操作系統爲true,則其邏輯運算的結果一定爲true

            command1  ||  command2

                 只要command1能夠成功執行,command2就沒有必要執行了

                 只有當command1執行失敗的時候,command2纔會被執行

         command1  ||  aommand2

           如果command1能夠成功執行,則command2會被執行

           如果command2執行失敗,則command2不會被執行

 

        非:邏輯取反, ,單目運算符

           STRING:讀取命令歷史空間的內容

           True   =   false

           False  =  true

           Command

             command1  &&  aommand2  相對於  command1  ||  command2

             command1  ||  aommand2  相對於  command1  &&  command2

 

           摩根定律:

              !(A  &&  B= !  A  看,||  !  B

              !(A  ||  B= !  A  &&  !  B

           邏輯運算符號優先級:

              >  &&  >  ||

        異或:雙目運算符

          比對兩個操作數是否不同,如果不同,則邏輯運算結果爲真,如果相同,則邏輯運算結果爲假

 

 

Shell腳本編程:

  什麼叫編程:編寫程序源代碼,爲了能夠讓用戶在使用計算機的時候,可以讓計算機以非交互式的方式完成某些任務,需要將這些任務編制稱爲一個文件,讓計算機順序讀取,從而實現功能。

 

  編程語言:

    高級語言:

      根據源代碼的處理方式:

        編譯運行語言:

          源代碼 ---> 編譯器(編譯) ---> 彙編器(彙編) ---> 鏈接器(庫的鏈接)(不是必須) --->     可以直接執行的二進制文件

        解釋運行語言:

          源代碼 ---> 直接啓動跟源代碼對應的解釋器程序,由解釋器邊解釋邊執行

      根據其編程過程中的功能的實現是調用庫還調用外部程序文件

        完整編程語言:

          利用庫或編程組件進行編程

        腳本編程語言:

          解釋器

          Shell腳本,調用shell程序,其次調用需要的外部命令文件,命令解釋器,提供了單一功能的編程接口,過程式編程邏輯的支持

      根據程序的編寫範式:指令 + 數據 = 程序    程序 = 算法 + 數據結構

        過程式編程語言:

            以指令(算法)爲中心,圍繞指令(算法)的實現設計數據和數據結構,數據爲指令服務

            算法或指令的實現形式:

                           順序執行

                           選擇執行

                           循環執行

        對象式編程語言:

            以數據爲中心,將數據實例化爲類,圍繞着數據的需求來部署命令,

            類,屬性,方法

     低級語言:

       彙編語言

 

Shell腳本編程

過程式編程語言:解釋運行的語言,依賴於外部程序文件的運行語言

 Shell腳本是什麼:

1. 純文本文檔

2. 根據用戶的需求來解決用戶問題的大量命令的組合體

3. “執行冪等性”------任何命令多次執行的結果是一致的

很多命令都不具備“執行冪等性”,在shell腳本中需要使用大量的程序邏輯來判斷某個命令是否滿足其運行條件,以避免在運行過程中出現嚴重錯誤

  

 Shell腳本中代碼內容:

  1. 首行必須是shebang(解釋器路徑),必須佔據絕對行首,在執行時,啓動相應的解釋器以解釋腳本內諸多的命令,

  #/bin/bash(首行樣本,前邊不能有空格)

  #/bin/sh

  #/usr/bin/python

  #/usr/bin/per1

  2. shell腳本中,除了shebang之外,以#佔據絕對行首的內容,均爲註釋行,解釋器會忽略這樣的內容

  3. 解釋器會忽略腳本中所有的空白行

  4. 大量的命令和關鍵字(ifelsethenwhilefor....

注意:shell腳本一旦運行,是在當前的shell中根據shebang的指示,開啓一個解釋器(子shell)來解散執行代碼內容,shell腳本的內容是在一個子shell進程中實現的,

 

        我們可以利用文本編輯工具來編寫shell腳本

             推薦使用:VIM

        約定下,腳本文件名的後綴爲.sh,也可以不加

腳本的運行方法:

  1. 爲腳本文件賦予執行權限,直接運行此文件

注意:如果在執行腳本時,只寫腳本文件名不給出路徑的話,必須確保PATH變量中保存的路徑下,能找到該腳本文件,

  2. 直接使用解釋器運行腳本,將腳本作爲解釋器命令的參數:

     Bash後邊加個絕對路徑


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