Bash shell編程的文法知識點(1)

來源:互聯網
上載者:User

標籤:style   blog   http   ar   color   使用   sp   for   strong   

 

Bash shell指令碼編程知識點如下(初學,不全,歡迎討論補充):

shell簡介

指令碼的簡單介紹

變數和引用

算術運算

互動式編程

選擇判斷

條件測試

迴圈

函數

 

shell簡介

shell是一種具備特殊功能的程式,提供了使用者與核心進行互動操作的一種介面,它接收使用者輸入的命令,並把它送入核心去執行,shell分為圖形介面和命令介面(我們操作的window系統就是一種圖形化shell,我們要學的bash也是she一種命令介面的shell)。

shell與核心和使用者的關係圖如下:

bash shell功能:

提供互動式介面:

命令列展開:~,{}

命令別名:slias,unalias

命令:history

globbing:*,?,[],[^]

快速鍵

命令補全:$PATH

命令hash

路徑補全

提供編程環境:面向過程,指令碼編程

程式:語句和運算式

流程:

順序執行

選擇執行

迴圈執行

編程模型:面向過程,物件導向

程式=指令+資料

面向過程:以指令為中心組織資料。bash shell就是一種面向過程的編程

物件導向:以資料為中心組織指令。

程式運行模型:

     編譯運行:

        來源程式 --> 預先處理 --> 編譯 --> 彙編 --> 連結

解釋運行:bash就是解釋啟動並執行

    解譯器 /bin/bash

        來源程式

        

指令碼的第一行:shebang

         #!/bin/bash

         #!/usr/bin/python

         #!/usr/bin/perl

 

指令碼的簡單介紹

指令碼語言的好處就是簡單、易學、易用,適合處理檔案和目錄之類的對象,以簡單的方式快速完成某些複雜的事情。它適用於系統管理、文本處理等方面完成特定功能的小程式。

  1. 書寫格式;shell指令碼格式如下:

    #!/bin/bash 必須頂格寫,指明解譯器類型。除了第一行#!指明解譯器類型之外,所有的#帶頭的shell都會認為是注釋,不予執行。

  2. 執行與檢測

    -n 文法測試,測試是否有語法錯誤,剛學shell建議執行前使用-n測試一下,保證文法是否錯誤。

    -x 類比執行,可以顯示該指令碼執行中的每個步驟。方便尋找錯誤。

    帶加號的是執行的步驟,不加-x不會顯示帶加號的行。

變數和引用:

變數是命名的地址空間,記憶體是編址的儲存單元:

變數用於儲存有用資訊,如路徑名、檔案名稱、數字等,Linux使用者使用變數定製其工作環境,使系統獲知使用者相關的配置。變數本質上是儲存的一個或多個電腦記憶體位址。

變數類型:

本地變數:只對當前shell進程有效,對當前shell之外的其他shell(包括其父、子等)無效。而且隨著shell進程的消亡而無效。

局部變數:僅對當前shell進程中的某段代碼空間內有效;通常用於函數本地程式。

環境變數:對當前shell進程及其子shell進程有效;

位置參數變數:$1,$2 ...........

特殊變數:$?,$0,$#,$$,$*,[email protected]

變數賦值與引用:

本地變數:無需事先聲明可直接使用;例如你家的東西直接拿來使用,而別人的東西你要說下才能使用一樣。

變數賦值:[set] VAR_NAME=VALUE set是可以省略的,直接變數名=變數值 賦值完成。

變數引用:${VAR_NAME}或$VAR_NAME {} 花括弧是可省略的,在變數後面跟著不是變數名的時候需要使用

直接賦值直接使用。花括弧這時候是可省略的

" ":弱引用,其中的變數會被替換,大部分字元都看作一般字元。例外還有\ $ `三個特殊字元可以使用,無需轉義。

‘ ‘:強引用,任何字元都看作一般字元,除單引號自身。所以無法在兩個單引號之間包含單引號,用\轉義也不行。

· · :命令引用:鍵盤TAB鍵上面字元,引用命令的。

強引用與弱引用的結果是不一樣的

set:顯示所有本地變數。

unset VAR_NAME:銷毀一個變數。

環境變數

變數賦值:

export VAR_NAME=VALUE

declare –x VAR_NAME=VALUE

export VAR_NAME:可以將本地變數賦值為環境變數,前提是本地變數必須存在。也不能加$符號

declare –x VAR_NAME:同上。

本地變數到環境變數轉換。

變數引用:${VAR_NAME}或$VARNAME 同本地變數引用。花括弧也可以省略。

注意:bash內建了許多環境變數

HISTSIZE,HISTFILE,HISTCONTROL,PATH,HOME,SHELL

export:顯示所有環境變數;printenv,env 同樣可以顯示

unset VAR_NAME:銷毀環境變數

 

唯讀變數:

readonly VAR_NAME 將環境變數變為唯讀變數

declare –r VAR_NAME 同上。

位置參數變數:經常在互動式指令碼使用。輸入的第一位元為$1,

變數命令法則:

  1. 不能帶程式中的關鍵字:if,elif,fil,then,for,…
  2. 不能使用數字、字母或底線,而且不能以數字開頭;
  3. 見名知義;一看到變數就知道那個變數的意思。

Bash shell編程的文法知識點(1)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.