區域性變數

AWK 語言不直接支援區域性變數函式。然而,通過向函式新增額外的引數可以很容易地模擬它們。通過 _ 為這些變數新增字首以表示它們不是實際引數是傳統的。

我們通過定義 single_quote 函式來說明這種技術,該函式在字串周圍新增單引號:

# single_quote(TEXT)
#  Return a string made of TEXT surrounded by single quotes

function single_quote(text, _quote) {
  _quote = sprintf("%c", 39)
  return sprintf("%s%s%s", _quote, text, _quote);
}

使用 sprintf("'%s'", text) 的簡單方法會導致實際問題,因為 awk 指令碼通常作為單引號引數傳遞給 awk 程式。