Bash 腳本函數編程

摘要

筆者在文中分享如何進行 Bash 腳本編程,既是經驗的回顧,也希望能夠幫助到更多學習編程的朋友。文中提到的一些代碼,可能有多種表現形式,筆者選擇更符合編碼規範的方式進行呈現。如果想要使用其他的開式,可以參考其他的文章。

1 概要

Bash 是Unix Shell的一種,它的名字是一系列縮寫:Bourne-AgainSHell — 這是關於Bourne shell(sh)的一個雙關語(Bourne again/ born again)。

可以參考  Bash 介紹

2 Bash 編程

Bash是解釋型語言,每次執行的時候,都需要通過解釋器解釋成機器執行的語言。因此我們需要在腳本文件的第一行指定解釋器。

#! /usr/bin/env bash

2.1 變量

Bash中的變量是忽略數據類型的。在定義的時候無需指定數據類型,然後在使用的時候自動轉換。

2.1.1 變量定義

varDecimal=100
varString="str"
varStringWithBlank="prefix content postfix"
varFromVar1="This is number ${varDecimal}"
varFromVar2="number${varDecimal}"

執行過程中,varFromVar1的值爲"This is number 100",varFromVar2的值爲 "number100"。

變量名需要滿足這些條件:

  • 由字母、數字和下劃線組成
  • 不能以數字開頭
  • 區分大小寫
  • 不能使用Shell的關鍵字

2.1.2 變量使用

變量使用的時候,需要用到

${}

比如:

echo ${VAR}

2.2 函數

2.2.1 函數定義

函數定義時,可以使用關鍵字 function 進行修飾,也可以省略。與高級語言不同,函數中參數傳遞時,不需要進行特別申明,可以直接使用 $n 進行引用。

function printInfo() {
  ret=1
  ....

  return ret
}

2.2.2 函數使用

函數調用的方式如同執行一般的命令一樣。採用 函數名 + 參數列表的方式,直接調用。如:

  printInfo "User"

3 運行與調試

腳本執行的幾種形式:

$ chmod +x tt.sh && ./tt.sh      # 爲腳本添加執行權限後,直接引用
$ source tt.sh                   # 使用source命令執行,tt.sh不需要擁有執行權限
$ bash tt.sh                     # 使用解釋器來執行,tt.sh不需要擁有執行權限

 

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