使用也可以产生值
echo "" | awk 'END{a[1]=1;x = a[2];print length(a);print a[3];print length(a)}'
打印结果是:2 空行 3
这个awk的数组元素居然是3!!就是说使用数组也是定义数组!!!这很恐怖,一不小心代码就会混入bug,而且会虚耗内存
那么在使用数组时必须这样
if (key in array) a = array[key]
awk只有参数列表里出现的变量会被当做局部变量
#!/bin/sh echo "" | awk ' function test(s) { print s s = "wa!" print s print "test.." } END{ s = "hello" test(s) print s }'
输出
hello
wa!
test...
hello