位置:首頁 > 高級語言 > Awk教學 > AWK用戶自定義函數

AWK用戶自定義函數

函數是程序的基本組成部分。 AWK允許我們定義自己的函數。一個大項目可以分為多個函數並且每個函數可以寫/獨立測試。它提供了可重用性的代碼。

下麵給出的是用戶自定義函數的一般格式為:

function function_name(argument1, argument2, ...)
{
	function body
}

在上麵的語法:

function_name是用戶定義函數的名稱。函數名稱應以字符的字母並且其餘部分可以是數字,字母或下劃線的任意組合。 AWK的保留字不能被用作函數名稱。

函數可以接受以逗號分隔的多個參數。參數不是強製性的。我們也可以創建一個用戶定義的函數不帶任何參數。

函數體由一個或多個AWK語句組成。

讓我們寫兩個函數計算最小和最大數,從main函數中調用這些函數。我們functions.awk文件是這樣的:

# Returns minimum number
function find_min(num1, num2)
{
  if (num1 < num2)
    return num1
  return num2
}

# Returns maximum number
function find_max(num1, num2)
{
  if (num1 > num2)
    return num1
  return num2
}

# Main function
function main(num1, num2)
{
  # Find minimum number
  result = find_min(10, 20)
  print "Minimum =", result
  
  # Find maximum number
  result = find_max(10, 20)
  print "Maximum =", result
}

# Script execution starts here
BEGIN {
  main(10, 20)
}

在執行上麵的代碼後,會得到以下結果:

Minimum = 10
Maximum = 20