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
相關文章
- Python函數語言程式設計系列007:惰性求值Python函數程式設計
- 函式程式設計函式程式設計
- Bash函式函式
- Linux Bash程式設計Linux程式設計
- select函式socket程式設計函式程式設計
- 從函數語言程式設計到Ramda函式庫(一)函數程式設計函式
- JS 命令式 宣告式 函式式 程式設計?JS函式程式設計
- 函數語言程式設計-鏈式程式設計RAC函數程式設計
- 不用任何賦值的程式設計稱為*函式式*程式設計賦值程式設計函式
- golang封裝一個bash函式,用於執行bash命令Golang封裝函式
- 揚帆起航:從指令式程式設計到函式響應式程式設計程式設計函式
- 用函式實現模組化程式設計一函式程式設計
- 函式響應式程式設計與RxSwift函式程式設計Swift
- python函式程式設計 返回函式 匿名函式 裝飾器 偏函式Python函式程式設計
- shell程式設計–bash變數程式設計變數
- 在 bash 中使用函式函式
- bash函式應用之:判斷函式是否存在函式
- 瞭解 JavaScript 函數語言程式設計 - 宣告式函式JavaScript函數程式設計函式
- Ardunio和HAL庫函式程式設計函式程式設計
- 函式設計函式
- Python 函數語言程式設計 – 高階函式Python函數程式設計函式
- Python函數語言程式設計自帶函式Python函數程式設計函式
- Day 14 匿名函式 內建函式 物件導向程式設計函式物件程式設計
- Python函數語言程式設計-高階函式、匿名函式、裝飾器、偏函式Python函數程式設計函式
- 好程式設計師Python培訓分享函數語言程式設計之匿名函式程式設計師Python函數函式
- Lambda表示式入門--函數語言程式設計與函式式介面函數程式設計函式
- 007 Rust 網路程式設計,libpnet 庫介紹Rust程式設計
- JavaScript函數語言程式設計之pointfree與宣告式程式設計JavaScript函數程式設計
- Java程式設計基礎05——方法(函式)Java程式設計函式
- 【Linux網路程式設計】Socket Api函式Linux程式設計API函式
- 前端-JavaScript非同步程式設計async函式前端JavaScript非同步程式設計函式
- 函數語言程式設計:Lambda 表示式函數程式設計
- .NET併發程式設計-函式閉包程式設計函式
- Python基礎程式設計(十六)——函式4Python程式設計函式
- Bash 指令碼程式設計的一些高階用法指令碼程式設計
- shell程式設計–bash變數介紹程式設計變數
- 怎樣用 Bash 程式設計:迴圈程式設計
- [20231123]函式與bash shell呼叫.txt函式