技术宅,fat-man

增加语言的了解程度可以避免写出愚蠢的代码

导航

awk一些很恐怖的特性

使用也可以产生值

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

posted on 2013-05-15 13:22  codestyle  阅读(169)  评论(0)    收藏  举报