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