區域性變數
該 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 程式。