Shell指令碼學習筆記 五 函式

2021-05-24 13:16:23 字數 885 閱讀 4632

函式

bash呼叫函式不會開啟新的子shell,會在現有的shell環境中執行該函式。

函式的語法形式:

呼叫:函式名 引數1 引數2 ....

funcname變數,值的內容是函式名

取消函式定義:unset -f 函式名

return指令  $?傳回值

作用範圍:函式僅在定義的shell環境中有效,如果要傳遞函式給子shell環境使用,可使用內建命令export和-f選項:export -f 函式名

如果沒有特別設定變數的屬性,那麼在script中自定義的變數稱為全域性變數,作用範圍在整個script檔案中

內建命令local,設定變數屬性為私有

主程式中,盡量不要用傳入函式的全域性變數的值來控制函式執行後的程式流程

位置引數

含義

移動位置引數:shift n

指定位置引數:set命令

例子運用位置引數傳遞引數值給函式時,原有的位置引數會被儲存,其內含值不會受到影響

取用命令列的選項和引數:

getopts 選項行 選項變數

選項行由各選項的單一字元組成,getopts由命令列取得選項,把它放入選項變數中,如果該選項需要額外的引數,引數值會放入optarg變數中例子

建立函式庫

遞迴函式例子

結果

Shell指令碼學習筆記 函式

和c語言類似,shell中也有函式的概念,但是函式定義中沒有返回值和引數列表。在定義myfunc 函式時並不執行函式體中的命令,就像定義變數一樣,只是給myfunc這個名字乙個定義,到後面呼叫myfunc函式時,才執行函式體中的命令。注意 shell中的函式呼叫不寫括號。shell中的函式必須先定義...

Shell 指令碼學習筆記五 Shell傳遞引數

我們可以在執行 shell 指令碼時,向指令碼傳遞引數,指令碼內獲取引數的格式為 n。n 代表乙個數字,1 為執行指令碼的第乙個引數,2 為執行指令碼的第二個引數,以此類推 bin bash echo shell 傳遞引數例項!echo 執行的檔名 0 echo 第乙個引數為 1 echo 第二個引...

Shell 指令碼學習筆記九 Shell函式

函式的定義格式 function funname 1 可以帶function fun 定義,也可以直接fun 定義,不帶任何引數 2 引數返回,可以顯示加 return 返回,如果不加,將以最後一條命令執行結果,作為返回值。return後跟數值n 1 沒有 return 語句的函式 demofun ...