Shell腳本怎麼寫?這個基礎教程你一定要看!

一、Shell編程基礎

1.1 變量

1.1.1 變量定義

  • = 左右不要有空格
  • 如果內容有空格,需要使用單引號雙引號
  • 雙引號支持轉義符,$ 開頭的變量會被自動替換
    在這裏插入圖片描述

1.1.2 預定義變量

  • PWD:當前目錄
  • USER:當前用戶
  • HOME:當前用戶主目錄,還可以用~簡寫
  • PATH:當前所有可執行程序
  • RANDOM:產生一個隨機數
    在這裏插入圖片描述

1.1.3 特殊符號

  • {1..10}:等價於 seq 1 10,表示 1~10 數字
  • seq 1 3 10:表示生成一個步進爲 3 的 1~10 的數
  • ((a=a+3)):整數擴展,雙括號裏面的變量作爲整數處理
    在這裏插入圖片描述

1.1.4 變量類型

  • Shell中不區分變量類型的,這一點和Python很像,所有的變量都是基礎類型,只是在運行的時候做動態解析。其中字符串數字布爾是常用的。
  • 布爾的基本表示表現形式是 truefalse

1.1.5 內置判斷

  • 判斷主要包括算數判斷的邏輯判斷,還有一些 Shell 中內置的判斷三個方面。下面爲常用的一些內置判斷
  • -e file:表示如果文件存在,則結果爲真;
  • -d file:表示如果文件是一個子目錄,則結果爲真;
  • -f file:表示如果文件是一個普通文件,則結果爲真
  • -r file:表示如果文件可讀,則結果爲真;
  • -s file:表示如果文件的長度不爲 0,則結果爲真;
  • -w file:表示如果文件可寫,則結果爲真;
  • -x file:表示如果文件可執行,則結果爲真。

1.2 邏輯控制

1.2.1 條件判斷 if

  • 首先看下 if 條件判斷,if 首先檢測判斷條件是否成立,如果成立則執行 then 語句塊內的邏輯,else 執行判斷不成立的邏輯,還有 elif…if…,它類似於 Python,當條件都不滿足時去判斷下一個條件。

1.2.2 for循環

  • 第一種實現方式:for((i=0;i<10;i++))
  • 第二種實現方式:for...in...語句塊
    在這裏插入圖片描述

1.2.3 while循環

  • while 首先判斷條件,條件成立則在 do 語句塊中執行操作。

1.2.4 退出循環 break、continue

  • return:函數返回
  • exit:腳本進程退出
  • break:退出當前循環
  • continue:跳出當前循環,進入下一次循環

二、編寫Shell腳本實戰

2.1、註釋

  • ·註釋以#開頭,用於增加腳本可讀性。shell腳本以.sh結尾。可以使用vim命令創建一個shell腳本。
    在這裏插入圖片描述

2.2、參數

當腳本開始執行的時候,會按照制定規則去解析語句。當傳遞一個參數給腳本時,它是怎麼被解析的?

  • $0:表示被執行的程序,也就是當前腳本
  • $1$2 分別表示傳遞的第 1 個第 2 個參數,Shell 默認只支持 9 個參數,如果你需要支持更多的參數可以使用 shift
  • $@$* 表示所有的參數,但不包含 $0
    在這裏插入圖片描述
    在這裏插入圖片描述

2.3、函數

  • 函數:函數是以函數名(){}括起來的內容組成。函數可以實現一些功能封裝,同時函數也支持與腳本類似的參數解析邏輯。
    在這裏插入圖片描述
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章