Function 函數

基本語法

  • return 退出函數,函數中最後一行 return 可省略
  • 函數定義本身也是一個命令,除非語法錯誤,否則總是狀態碼 0
  • 函數須在使用前定義
fname() {
  commands
  return
}

函數使用

shell 函數可視為指令,執行函數和執行其他命令是一樣的

fname [arguments...]

函數內的變數位置

func() {
  # $0 仍然指向腳本文件名稱
  echo "\$0 = $0"
  # 其它位置參數被更新成函數調用時的參數
  echo  "參數個數 $#, 分別為 $@"
  # 函數的名稱存在環境變數 FUNCNAME 中
  echo $FUNCNAME
}

# 给這個函數傳參執行
func 1 2 3

局部變數

透過 local 在函數內部定義局部變數

foo() {
  local var="var in foo"
  bar
}

bar() {
  echo $var
  var="var in bar"
  echo $var
}

var="var in global"
foo
echo $var

Reference

Last Updated:
Contributors: johnnywang