Bash程式設計007——函式(一)
Bash程式設計007——函式(一)
使用函式可以對程式進行更好滴組織,將一些相對獨立的程式碼變成函式,可以提高程式的可讀性和重用性,避免重複編寫大量相同的程式碼。
7.1 函式
7.1.1 函式定義
簡單來說,函式就是將一組功能相對獨立的程式碼集中起來,形成一個程式碼塊,這個程式碼塊可以完成某個具體地任務。本質上來說,函式是一個函式名到某個程式碼塊的對映。當定義了函式之後,就可以通過函式名來呼叫其所對應的程式碼塊。
對於shell函式而言,函式與shell指令碼並沒有明顯的區別,shell指令碼中可以使用的命令和語句,都可以在函式中使用。但是,在執行時,函式和指令碼還是有著本質上的區別。shell指令碼在執行時,會建立一個新的shell程式來解釋執行指令碼中的程式碼,指令碼執行完成,shell程式就會結束;而函式在執行時,系統並不會為其單獨建立一個程式,而是在呼叫者的程式中直接解釋執行函式中的程式碼。
7.1.2 基本語法
函式基本語法:
function name (){
commands;
}
// 或者可以省略function
name () {
commands;
}
函式名的命名規則和變數的命名規則相同,由數字、字母或下劃線組成且以字母或下劃線開頭的字串。
示例:
function Hello(){
echo "Hello world"
}
# 執行
Hello
# 結果:Hello world
7.1.3 傳遞引數
當某個函式定義之後,使用者就可以通過函式名來呼叫該函式。呼叫函式的基本語法如下:
func argv1 argv2 ...
其中func表示函式名,argv1、argv2等表示傳遞給函式的引數
在函式中可以通過一些特殊的變數來訪問傳遞過來的引數:
$n,表示傳遞給函式的第n個引數,$1表示第一個引數等
S#,表示傳遞引數的總個數
$*,表示以"argv1 argv2 ..."的形式返回所有引數的值
S@,表示以"argv1" "argv2" ...的形式返回所有引數的值
示例:
function hi() {
echo $#
echo $*
}
# 執行:hi 1 2 3 4 5 6
# 結果:
6
1 2 3 4 5 6
7.1.4 函式返回值
在shell中,處理函式的返回值可以分為以下幾種情況來討論。
使用return語句返回某個數值,但是隻能返回0~255之前的整數值。
將返回的資料輸出到標準輸出,比如使用echo命令。
示例:
function getStr() {
echo "hello"
}
# 使用:
str=$(getStr)
echo $str
# 結果:hello
相關文章
- Bash函式函式
- 函式程式設計函式程式設計
- scala 函式程式設計函式程式設計
- 函式程式設計之道函式程式設計
- 函數語言程式設計(一) 認識“程式設計正規化”和“函式”函數程式設計函式
- 【趣解程式設計】函式程式設計函式
- Windows 程式設計常用函式Windows程式設計函式
- 用函式實現模組化程式設計一函式程式設計
- Linux Bash程式設計Linux程式設計
- bash程式設計 註釋程式設計
- bash 程式設計指南(轉)程式設計
- 從函數語言程式設計到Ramda函式庫(一)函數程式設計函式
- golang封裝一個bash函式,用於執行bash命令Golang封裝函式
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- 不用任何賦值的程式設計稱為*函式式*程式設計賦值程式設計函式
- 揚帆起航:從指令式程式設計到函式響應式程式設計程式設計函式
- 在 bash 中使用函式函式
- select函式socket程式設計函式程式設計
- shell程式設計–bash變數程式設計變數
- 9.bash shell程式設計程式設計
- 函式式思維和函數語言程式設計函式函數程式設計
- bash函式應用之:判斷函式是否存在函式
- 13.程式程式設計進階:函式程式設計函式
- Scala函式與函數語言程式設計函式函數程式設計
- 邏輯程式設計與函式程式設計的介紹程式設計函式
- iOS鏈式程式設計及函數語言程式設計iOS程式設計函數
- python函式程式設計 返回函式 匿名函式 裝飾器 偏函式Python函式程式設計
- 函式設計函式
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式
- 函式響應式程式設計與RxSwift函式程式設計Swift
- Linux系統程式設計(9)—— 程式之程式控制函式exec系列函式Linux程式設計函式
- Ardunio和HAL庫函式程式設計函式程式設計
- linux程式設計之pipe()函式Linux程式設計函式
- inux程式設計下signal()函式UX程式設計函式
- Linux Shell程式設計(29)——函式Linux程式設計函式
- 簡潔的bash程式設計技巧程式設計
- BASH SHELL 程式設計簡介(轉)程式設計