一個程序包含有多個功能,每個功能我們可以獨立一個函數(shù)。
函數(shù)可以提高代碼的復(fù)用性。
用戶自定義函數(shù)的語法格式為:
function function_name(argument1, argument2, ...) { function body }
解析:
- function_name 是用戶自定義函數(shù)的名稱。函數(shù)名稱應(yīng)該以字母開頭,其后可以是數(shù)字、字母或下劃線的自由組合。AWK 保留的關(guān)鍵字不能作為用戶自定義函數(shù)的名稱。
- 自定義函數(shù)可以接受多個輸入?yún)?shù),這些參數(shù)之間通過逗號分隔。參數(shù)并不是必須的。我們也可以定義沒有任何輸入?yún)?shù)的函數(shù)。
- function body 是函數(shù)體部分,它包含 AWK 程序代碼。
以下實例我們實現(xiàn)了兩個簡單函數(shù),它們分別返回兩個數(shù)值中的最小值和最大值。我們在主函數(shù) main 中調(diào)用了這兩個函數(shù)。 文件 functions.awk 代碼如下:
# 返回最小值 function find_min(num1, num2) { if (num1 < num2) return num1 return num2 } # 返回最大值 function find_max(num1, num2) { if (num1 > num2) return num1 return num2 } # 主函數(shù) function main(num1, num2) { # 查找最小值 result = find_min(10, 20) print "Minimum =", result # 查找最大值 result = find_max(10, 20) print "Maximum =", result } # 腳本從這里開始執(zhí)行 BEGIN { main(10, 20) }
執(zhí)行 functions.awk 文件,可以得到如下的結(jié)果:
$ awk -f functions.awk Minimum = 10 Maximum = 20