由于函数定义放置不当而导致Awk语法错误

由于函数定义放置不当而导致Awk语法错误,awk,Awk,这很尴尬,但有人能简单地解释一下为什么会出现语法错误吗 echo why this fails? | gawk '{ function why(fail) { print fail } why($0) }' 函数定义必须位于顶层。您在{..}中有它 echo This works | gawk ' function why(fail) { print fail } { why($0) }' 函数定义必须位于顶层。您在{..}中

这很尴尬,但有人能简单地解释一下为什么会出现语法错误吗

echo why this fails? | gawk '{

function why(fail) {
        print fail
    }

why($0)

}'

函数定义必须位于顶层。您在
{
..
}
中有它

echo This works | gawk ' 
function why(fail) { 
    print fail 
} 
 
{ 
    why($0) 
}' 


函数定义必须位于顶层。您在
{
..
}
中有它

echo This works | gawk ' 
function why(fail) { 
    print fail 
} 
 
{ 
    why($0) 
}'