每種語言都有自己的函式,shell也不例外。支援函式,它可以將指令碼程式劃分成乙個個相對獨立的**塊,使**的模組化,結構更加清晰,並有效地減少程式的**量,提高**的復用率。
函式格式
function fun_name()
或者fun_name()
注:()中不能帶引數
引數都是直接以變數的形式寫在函式中,傳遞引數的時候使用$,若果不加${},直接輸入引數,則把引數當作字串來處理,不會當作變數
例
結果
注:¥?用來接收funsum的返回值
例:傳遞引數
結果
注:函式中的引數$後面是多少,則取值的時候就取傳遞的引數中第幾個,當大於9時,函式中要獲取引數需要像示例中獲取第五個引數一樣新增大括號{}
其他特殊字元用來處理引數
$0:是指令碼本身的名字
$#:傳遞到指令碼的引數個數
$*:以乙個單字串顯示所有向指令碼傳遞的引數
$$:指令碼執行的當前程序id號
$!:後台執行的最後乙個程序的id號
$@:與$*相同,但是使用時加引號,並在引號中返回每個引數
$-:顯示shell使用的當前選項,與set命令功能相同
$?:顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤
變數作用域
在函式呼叫之前,定義變數,則定義的是全域性變數,當執行函式的時候讀取變數使用
在函式中定義變數,local key=value,則為函式內部的變數,函式在執行的時候讀取變數使用,但是該變數在函式外不生效
九 Shell程式設計 函式
1 複習一下以前的知識 1 位置變數個數 2 所有的位置引數 2 shift命令 執行一下,位置引數前移動乙個,如 1為第乙個位置引數,然後執行一下shift,則 1變為第二個引數,位置引數個數也會減1,即 的值遞減。示例 bin bash 列印所有的位置引數 while gt 0 do echo ...
jQuery 資料操作函式(九)
clearqueue 從佇列中刪除所有未執行的專案。data 儲存與匹配元素相關的任意資料。jquery.data 儲存與指定元素相關的任意資料。dequeue 從佇列最前端移除乙個佇列函式,並執行它。jquery.dequeue 從佇列最前端移除乙個佇列函式,並執行它。jquery.hasdata...
C語言字串函式 九
pragma mark 字串常量 void charpointer printf s n p n c n hello how are you 字串的 取值就是指標位址 printf c3 0 s c3 0 的第乙個字元 c n c3 0 c3 0 陣列下標的 取值 對應字串的首字元 等同於 c3 0...