自定义函数
函数的最大好处在于可以模块化程序,减少重复代码、复用已有功能,但是需要注意的是只有gawk,即GUN的awk实现才支持自定义函数的功能。
function max(x, y) { i = 9; x = 10; m = 100; return x>y?x:y; } BEGIN{ } { i = 0; x = 5; result = max(10, 100); print("max: "result); print("i: "i); print("x: "x); print("y: "y); print("m: "m); } END{ }
$echo ""|awk -f chapter_2_5-1.awk
max: 100
i: 9
x: 5
y:
m: 100
函数的定义很简单,使用function
关键字+函数名+参数名就可以了,这里特别要注意的是变量的生命周期范围,除形参x,y是函数内的局部变量外,所有进行了赋值操作的变量都是全局变量,在函数内进行了任何修改的话都会将修改结果带出函数外。