2012-02-13 65 views
1

BEGINEND在我非常简单的脚本中导致语法错误。BEGIN和END导致gawk中的语法错误

剧本的大致轮廓是:

args=("$0") 
gawk -v var=0 '{ 
*do stuff based on input file 
*stuff gets assigned to var 
*END{ print var} 
}' ${args[0]} 

我碰到下面的错误,我不知道为什么:

gawk: cmd. line:x: END { ... } 
gawk: cmd. line:x: ^syntax error 

编辑: 所以亚当利斯是正确的!我的花括号出错了。

我基本上做的是徒劳无功的{脚本END {东西}}'时,我应该已经做徒劳无功{}脚本END {}东西“

感谢亚当!

+1

我认为我们将要看看你的“*基于输入文件做的东西”,或精简版仍然为您提供了同样的错误。 – 2012-02-13 00:32:20

+0

如果您发布演示问题的真实脚本,您很可能会得到更好的答案。 (它不一定是*你的实际脚本,但它必须是可以运行的东西。) – ruakh 2012-02-13 00:33:00

+1

我不认为你想把整个脚本放在大括号内。 – 2012-02-13 00:33:38

回答

2

这可能会为你工作:

args=("$0") 
gawk -v var=0 '{ 
#do stuff based on input file 
#stuff gets assigned to var 
} 
END{ print var}' ${args[0]}