程式設計語言和shell編程基礎

來源:互聯網
上載者:User

標籤:linux   程式設計語言   shell   

bash的特性之多命令執行:

    $()   

    管道:進程間的通訊(IPC)

順序執行結構:

    分號

選擇執行結構:(邏輯運算)

  與:邏輯乘法,&&

    0:success-->true

    1-255:failure-->false

    true&&true = true

    true&&false = false    “與”短路邏輯運算:

 只要第一個運算元為false,則其邏輯運算的結果一定為false,如果command1能夠成功執行,則command2會被執行,如果command1不能成功執行,則command2不會被執行


  或:邏輯加法,||兩條管道

  只有兩個結果都為false

    ture || false = ture

 只要第一個運算元為true,則結果一定為true

  如果command1成功執行,command2就沒有必要執行

  

  與和或都是雙目運算子



  非:邏輯取反,!:單目運算子

    !string:讀取曆史命令空間的內容

    ! command:

    ! true = false

  ! command1 $$ command2 相當於 command1 || command2


邏輯運算子號優先順序:!> $$ > ||

  德摩根定律:


  異或:比對兩個運算元是否不同,如果不同,組邏輯運算結果為真,如果相同,則邏輯運算結果為假

  


shell指令碼編程:

  什麼是編程:編寫程式原始碼

  為了能夠讓使用者在使用電腦的時候,可以讓電腦以費互動方式完成某些任務,需要將這些任務編製成為一個檔案,讓電腦順序擷取,從而完成任務

  程式設計語言:

    進階語言:

  根據原始碼的處理方式:

    編譯運行語言:

      原始碼--編譯器(編譯)--彙編器(彙編)--【連結器(庫的連結)】--可以直接執行的二進位檔案

    解釋運行語言:

      原始碼--直接啟動跟原始碼對應的解譯器程式,由解譯器邊編譯邊執行

  根據其彙編過程中的功能的實現是調用哭還是調用外部程式檔案分為:

      完整程式設計語言:利用庫或編程組件進行編程

      指令碼程式設計語言:解譯器:

      shell指令碼:調用shell程式,其次調用需要的外部命令檔案:命令直譯器

        提供了單一功能的編程介面:過程式編輯邏輯的支援

  根據程式的編寫範式:程式=指令+資料

    過程式程式設計語言:

      以指令為中心,圍繞指令(演算法)的實現設計資料和資料結構,資料為指令服務的

    對象式程式設計語言:

      以資料為中心,將資料執行個體化為類,圍繞著資料的需求來部署指令

shell指令碼編程

    過程式程式設計語言,解釋運行,以來與外部程式檔案運行

shell指令碼是什嗎?

  純文字文檔

  根據使用者的需求解決使用者問題的大量命令的組合體

  執行等冪性(任何命令執行的結果是一樣的)

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

shell指令碼中的代碼內容:

  1、首行必須是shebang,解譯器路徑,必須佔據絕對行首;在執行時,啟動相應的解譯器以解釋指令碼內諸多的命令:

    #!/bin/bash

  2、在shell中,除了shebang之外,以#佔據絕對首行的內容,均為注釋行;解譯器會忽略這樣的航的內容

  3、解釋會忽略指令碼中所有的空白行

  4、大量的命令和關鍵字(if,else,then,do,while,for ...)

注意:shell指令碼一旦運行,是在當前的shell中根據shebang的指示、開啟一個解譯器(子shell)

解釋的行代碼內容,shell指令碼的內容是在一個子shell進程中實現的

我們可以利用編輯來編寫shell指令碼

  nano,vi,vim,emacs,pico,推薦使用vim

  約定下,指令檔名的尾碼為.sh,也可以不加  

指令碼的運行方法:

  1、為指令檔賦予執行許可權,直接運行此檔案

    chmod +x /PATH/TO/SCRIPT_FILE

如果在執行指令碼時,唯寫指令檔名不寫檔案路徑的話,必須確保PATH變數中儲存的路徑下能夠找到此檔案

  2、直搜尋接使用解譯器運行指令碼,將指令碼作為解譯器命令的參數


    低級語言:

      組合語言




   


程式設計語言和shell編程基礎

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.