函數:shell
最大的功能能夠簡化代碼,在shell中作出相似自動執行的腳本,把一段具備獨立功能代碼封裝在一塊兒,並給予命名;後續用到時,可直接經過給定函數名來調用總體代碼;編程
函數的使用方式:ide
先定義,後調用
模塊化
先編寫函數代碼,在給出函數名稱,按需傳遞參數
函數
格式:spa
① function function_name(){blog
command 1
作用域
command 2 # 函數中能夠有多個語句,但不容許有空語句
get
}
it
② function_name(){
command 1
command 2
}
特色:
代碼重用,模塊化編程
調用函數:
f_name [argu1, argu2, ...]
注:傳遞參數時,必定要寫成Print $n;而不能寫成Print n。爲何?例如你輸入的是20,則n的值($n)爲20,前者表示的是把n的值,即20傳遞給函數Print,然後者則表示把字符n傳遞給函數Print。這點與在靜態語言中的函數參數傳遞是很不一樣的,由於在Shell中變量的使用並不須要先定義,因此要使用變量,讓Shell知道它是一個變量,並要傳遞它的值時,就是用$n,而不能直接用n,不然只把n看成一個字符來處理,而不是一個變量。函數代碼執行時,一旦遇到return,函數代碼終止運行,函數返回
自定義函數狀態返回值:
return [#]
0: 成功
1-255:失敗
模塊化編程
功能:把腳本文件中的代碼分隔爲多段,放在不一樣的文件中
假設/root/bin/srv目錄有兩個文件:
(1) 函數文件
(2) 腳本文件
爲腳本使用配置文件
一個文件中只定義變量
腳本文件source此變量定義的文件
變量的做用域:
局部變量:在函數體中繼續調用函數自身
local VARIABLE=value
存活時間:
函數執行開始,至函數返回結束;