使用也可以产生值
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/shecho "" | awk ' function test(s) {print ss = "wa!"print sprint "test.." }END{s = "hello"test(s)print s}'
输出
hello
wa!
test...
hello