局部变量
该 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 程序。