Shell指令碼基礎

2021-09-26 08:23:09 字數 2559 閱讀 2452

shell指令碼:就是說我們把原來linux命令或語句放在乙個檔案中,然後通過這個程式檔案去執行時,我們就說這個程式為shell指令碼或shell程式;我們可以在指令碼中輸入一系統的命令以及相關的語法語句組合,比如變數,流程控制語句等,把他們有機結合起來就形成了乙個功能強大的shell指令碼

先手寫乙個指令碼體驗一下:

[root@ldh~] # vim test.sh #寫入以下內容

注釋:

1、!/bin/bash 作用:告訴指令碼使用的是哪種命令直譯器。如不指shell,以當前shell作為執行的shell。

2、在shell中以#開始頭表示,整個行就被當作乙個注釋。執行時被忽略。

3、shell程式一般以.sh結尾

[root@ldh~]# chmod +x test.sh

[root@ldh~]# ./test.sh #執行

hello world

建立shell程式的步驟:

第一步:建立乙個包含命令和控制結構的檔案。

第二步:修改這個檔案的許可權使它可以執行。 使用chmod +x test.sh

第三步:檢測語法錯誤

第四步:執行 ./example

shell指令碼的執行通常有以下幾種方式

1、/root/test.sh 或者 ./test.sh (當前路徑下執行指令碼的話要有執行許可權chmod +x test.sh)

2、bash test.sh 或 sh test.sh (這種方式可以不對指令碼檔案新增執行許可權)

3、source test.sh (可以沒有執行許可權)

4、sh < test.sh 或者 cat test.sh |sh(bash)

變數是shell 傳遞資料的一種方法。變數是用來代表每個值的符號名。我們可以把變數當成乙個容器,通過變數,可以在記憶體中儲存資料。也可以在指令碼執行中進行修改和訪問儲存的資料

變數的設定規則:

1、 變數名稱通常是大寫字母,它可以由數字、字母(大小寫)和下劃線_組成。變數名區分大小寫;但是大家要注意變數名稱不能以數字開頭

2、 等號 = 用於為變數分配值,在使用過程中等號兩邊不能有空格

3、 變數儲存的資料型別是整數值和字串值

4、 在對變數賦於字串值時,建議大家用引號將其括起來。因為如果字串中存在空格隔符號。需要使用單引號或雙引號

5、 要對變數進行呼叫,可以在變數名稱前加美元符號$

6、 如果需要增加變數的值,那麼可以進行變數值的疊加。不過變數需要用雙引號包含「變數名

」或用變數名」或用

變數名」或用

包含變數的分類

按照變數的作用可以分成4類:

1、使用者自定義變數

2、環境變數:這種變數中主要儲存的是和系統操作環境相關的資料。

3、位置引數變數:這種變數主要是用來向指令碼當中傳遞引數或資料的,變數名不能自定義,變數作用是固定的。

4、預定義變數:是bash中已經定義好的變數,變數名不能自定義,變數作用也是固定的。

按照變數作用域可以分成2類:全域性變數和區域性變數。

區域性變數是shell 程式內部定義的,其使用範圍僅限於定義它的程式,對其它程式不可見。包括:使用者自定義變數、位置變數和預定義變數。

全域性變數是環境變數,其值不隨shell 指令碼的執行結束而消失。

變數名命名規則:由字母或下劃線打頭,不允許數字開頭,後面由字母、數字或下劃線組成,並且大小寫字母意義不同。在使用變數時,在變數名前加$

例1:給變數var1賦值

[root@ldh ~]# var1=123

[root@ldh ~]# echo $var1

123variable [ˈveəriəbl] 變數

例2:錯誤的賦值方式,不允許數字開頭,等號兩邊不能有空格

[root@ldh~]# var2 =456

bash: var2: 未找到命令…

[root@ldh~]# var2= 456

bash: 456: 未找到命令…

[root@ldh~]# var2 = 456

bash: var2: 未找到命令…

變數值的疊加,使用${}

n am

e是name是

name

是的簡化版本,但是在某些情況下,還必須使用花括號引起的方式來消除歧義並避免意外的結果

[root@ldh~]# var4=mysql

[root@ldh~]# echo $var4

mysql

[root@ldh~]# echo $var4-db.log

mysql-db.log

shell指令碼基礎

執行shell指令碼有兩種方法 1 作為可執行程式 將上面的 儲存為 test.sh,並 cd 到相應目錄 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼 注意,一定要寫成 test.sh,而不是 test.sh,執行其它二進位制的程式也一樣,直接寫 test.s...

shell指令碼基礎

shell定義 shell是命令解析器,將使用者的輸入的指令轉化為機器可以執行的程式。和c語言不同,指令碼有自己的語法。比較常用的格式是 bin bash或者 bin sh 如 這是乙個判斷輸入字元型別的程式 bin bash read key case in a z echo upperlette...

Shell指令碼基礎

1 shell是使用者與核心進行互動操作的一種介面,目前最流行的shell稱為bash shell 2 shell也是一門程式語言 解釋型的程式語言 即shell指令碼 3 乙個系統可以存在多個shell,可以通過cat etc shells命令檢視系統中安裝的shell,不同的shell可能支援的...